tcmd: write() may block even with POLLOUT - neatvi - [fork] simple vi-type editor with UTF-8 support
(HTM) git clone git://src.adamsgaard.dk/neatvi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 9bf5bfb3a0527155ff78c62a89f1dff81df6e113
(DIR) parent 57077e595860fb487d95316fc8dfc41df965342f
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Mon, 1 Aug 2016 15:18:47 +0430
cmd: write() may block even with POLLOUT
Diffstat:
M cmd.c | 2 ++
1 file changed, 2 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/cmd.c b/cmd.c
t@@ -1,3 +1,4 @@
+#include <fcntl.h>
#include <poll.h>
#include <signal.h>
#include <stdio.h>
t@@ -69,6 +70,7 @@ char *cmd_pipe(char *cmd, char *ibuf, int iproc, int oproc)
signal(SIGINT, SIG_IGN);
term_done();
}
+ fcntl(ifd, F_SETFL, fcntl(ifd, F_GETFL, 0) | O_NONBLOCK);
fds[0].fd = ofd;
fds[0].events = POLLIN;
fds[1].fd = ifd;