diff options
-rw-r--r-- | io_muxer.c | 29 | ||||
-rw-r--r-- | io_muxer.h | 3 |
2 files changed, 16 insertions, 16 deletions
@@ -87,22 +87,21 @@ bool IoMuxerOnWrite(struct IoMuxer* io_muxer, int fd, void (*fun)(void*), } enum IoMuxerResult IoMuxerIterate(struct IoMuxer* io_muxer, int timeout) { - for (;;) { - CompressRecords(io_muxer); - int result = poll(io_muxer->pfds, io_muxer->size, timeout); - switch (result) { - case -1: - return kIoMuxerResultError; - case 0: - return kIoMuxerResultTimeout; - default: - break; - } - for (size_t i = 0; i < io_muxer->size; i++) { - if (io_muxer->pfds[i].revents) - io_muxer->tasks[i].fun(io_muxer->tasks[i].user); - } + CompressRecords(io_muxer); + int result = poll(io_muxer->pfds, io_muxer->size, timeout); + switch (result) { + case -1: + return kIoMuxerResultError; + case 0: + return kIoMuxerResultTimeout; + default: + break; + } + for (size_t i = 0; i < io_muxer->size; i++) { + if (io_muxer->pfds[i].revents) + io_muxer->tasks[i].fun(io_muxer->tasks[i].user); } + return kIoMuxerResultSuccess; } void IoMuxerDestroy(struct IoMuxer* io_muxer) { @@ -36,8 +36,9 @@ struct IoMuxer { }; enum IoMuxerResult { - kIoMuxerResultError = 0, + kIoMuxerResultSuccess = 0, kIoMuxerResultTimeout, + kIoMuxerResultError, }; void IoMuxerCreate(struct IoMuxer* io_muxer); |