X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Feventl.c;h=104088c9c080e581f80d68b38b22b3fadfa3c170;hb=7f22a88d407609fc8a4f8554ef754dd649145447;hp=980b0c20d1b8e56382daeedca2571b8ae16c6d3b;hpb=1ff3deef138c1f1af5f435c4931f61e5b1595372;p=yaz-moved-to-github.git diff --git a/server/eventl.c b/server/eventl.c index 980b0c2..104088c 100644 --- a/server/eventl.c +++ b/server/eventl.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: eventl.c,v $ - * Revision 1.3 1995-03-14 11:30:14 quinn + * Revision 1.5 1995-03-15 08:37:41 quinn + * Now we're pretty much set for nonblocking I/O. + * + * Revision 1.4 1995/03/14 16:59:48 quinn + * Bug-fixes + * + * Revision 1.3 1995/03/14 11:30:14 quinn * Works better now. * * Revision 1.2 1995/03/14 10:27:59 quinn @@ -36,6 +42,7 @@ IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags) new->flags = flags; new->fun = cb; new->next = iochans; + new->force_event = 0; iochans = new; return new; } @@ -74,8 +81,6 @@ int event_loop() continue; return 1; } - if (!res) - continue; for (p = iochans; p; p = nextp) { int force_event = p->force_event; @@ -84,7 +89,7 @@ int event_loop() nextp = p->next; if (FD_ISSET(p->fd, &in) || force_event == EVENT_INPUT) (*p->fun)(p, EVENT_INPUT); - if (!p->destroyed && (FD_ISSET(p->fd, &in) || + if (!p->destroyed && (FD_ISSET(p->fd, &out) || force_event == EVENT_OUTPUT)) (*p->fun)(p, EVENT_OUTPUT); if (!p->destroyed && (FD_ISSET(p->fd, &except) ||