uloop: fix infinite waiting with kqueue

This commit is contained in:
Felix Fietkau 2010-12-06 01:16:59 +01:00
parent d110a016e3
commit 869fc39f50

View file

@ -116,15 +116,12 @@ static void uloop_run_events(int timeout)
struct timespec ts; struct timespec ts;
int nfds, n; int nfds, n;
if (timeout < 0) { if (timeout > 0) {
ts.tv_sec = 0;
ts.tv_nsec = 0;
} else {
ts.tv_sec = timeout / 1000; ts.tv_sec = timeout / 1000;
ts.tv_nsec = timeout * 1000000; 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) for(n = 0; n < nfds; ++n)
{ {
struct uloop_fd *u = events[n].udata; struct uloop_fd *u = events[n].udata;