X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=server%2Feventl.c;h=2d9886b252b8799f2af6290be0593fa224c36144;hp=104088c9c080e581f80d68b38b22b3fadfa3c170;hb=afff2d64ae8758642c8e88bfebff9c00a982daa4;hpb=7f22a88d407609fc8a4f8554ef754dd649145447 diff --git a/server/eventl.c b/server/eventl.c index 104088c..2d9886b 100644 --- a/server/eventl.c +++ b/server/eventl.c @@ -4,7 +4,11 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: eventl.c,v $ - * Revision 1.5 1995-03-15 08:37:41 quinn + * Revision 1.6 1995-03-27 08:34:21 quinn + * Added dynamic server functionality. + * Released bindings to session.c (is now redundant) + * + * 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 @@ -29,7 +33,14 @@ #include -IOCHAN iochans = 0; +#include + +static IOCHAN iochans = 0; + +IOCHAN iochan_getchan(void) +{ + return iochans; +} IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags) { @@ -81,12 +92,11 @@ int event_loop() continue; return 1; } - for (p = iochans; p; p = nextp) + for (p = iochans; p; p = p->next) { int force_event = p->force_event; p->force_event = 0; - 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, &out) || @@ -95,6 +105,11 @@ int event_loop() if (!p->destroyed && (FD_ISSET(p->fd, &except) || force_event == EVENT_EXCEPT)) (*p->fun)(p, EVENT_EXCEPT); + } + for (p = iochans; p; p = nextp) + { + nextp = p->next; + if (p->destroyed) { IOCHAN tmp = p, pr;