From cab3e9970c8bd8b38272d4cb22e32b3184400687 Mon Sep 17 00:00:00 2001 From: Felix von Leitner Date: Sat, 6 Sep 2003 01:37:54 +0000 Subject: [PATCH] fix --- io/io_waituntil2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/io/io_waituntil2.c b/io/io_waituntil2.c index 9a95db4..e5d3ddf 100644 --- a/io/io_waituntil2.c +++ b/io/io_waituntil2.c @@ -43,9 +43,9 @@ int64 io_waituntil2(int64 milliseconds) { int n; struct timespec ts; ts.tv_sec=milliseconds/1000; ts.tv_nsec=(milliseconds%1000)*1000000; - if ((n=kevent(io_master,0,0,y,100,&ts))==-1) return; - while (n>0) { - io_entry* e=array_get(&io_fds,sizeof io_entry,y[--n].ident); + if ((n=kevent(io_master,0,0,y,100,&ts))==-1) return -1; + for (i=n-1; i>=0; --i) { + io_entry* e=array_get(&io_fds,sizeof(io_entry),y[--n].ident); if (e) { if (y[n].filter==EVFILT_READ) { e->canread=1; @@ -59,6 +59,7 @@ int64 io_waituntil2(int64 milliseconds) { } } } + return n; } #endif for (i=r=0; i