From: Felix Fietkau Date: Mon, 6 Dec 2010 00:16:59 +0000 (+0100) Subject: uloop: fix infinite waiting with kqueue X-Git-Url: http://git.archive.openwrt.org/?a=commitdiff_plain;ds=sidebyside;h=869fc39f50473e135a6be72b13a10f987e46c57b;p=project%2Flibubox.git uloop: fix infinite waiting with kqueue --- diff --git a/uloop.c b/uloop.c index 4d4b223..ec37925 100644 --- a/uloop.c +++ b/uloop.c @@ -116,15 +116,12 @@ static void uloop_run_events(int timeout) struct timespec ts; int nfds, n; - if (timeout < 0) { - ts.tv_sec = 0; - ts.tv_nsec = 0; - } else { + if (timeout > 0) { ts.tv_sec = timeout / 1000; ts.tv_nsec = timeout * 1000000; } - nfds = kevent(poll_fd, NULL, 0, events, ARRAY_SIZE(events), &ts); + nfds = kevent(poll_fd, NULL, 0, events, ARRAY_SIZE(events), timeout > 0 ? &ts : NULL); for(n = 0; n < nfds; ++n) { struct uloop_fd *u = events[n].udata;