diff options
-rw-r--r-- | os/inputthread.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/os/inputthread.c b/os/inputthread.c index 40a044375..a4266e92d 100644 --- a/os/inputthread.c +++ b/os/inputthread.c @@ -127,24 +127,10 @@ InputThreadFillPipe(int writeHead) { int ret; char byte = 0; - fd_set writePipe; - FD_ZERO(&writePipe); - - while (1) { + do { ret = write(writeHead, &byte, 1); - if (!ret) - FatalError("input-thread: write() returned 0"); - if (ret > 0) - break; - - if (errno != EAGAIN) - FatalError("input-thread: filling pipe"); - - DebugF("input-thread: pipe full\n"); - FD_SET(writeHead, &writePipe); - Select(writeHead + 1, NULL, &writePipe, NULL, NULL); - } + } while (ret < 0 && ETEST(errno)); } /** |