From: Adam Dickmeiss Date: Fri, 9 Nov 2007 18:49:19 +0000 (+0000) Subject: Enable use of yaz_poll always in event_loop. X-Git-Tag: YAZ.3.0.16~17 X-Git-Url: http://jsfdemo.indexdata.com/?a=commitdiff_plain;h=071b5ca306efc84b1b22e071c4e03b31fb9fe17a;p=yaz-moved-to-github.git Enable use of yaz_poll always in event_loop. --- diff --git a/src/eventl.c b/src/eventl.c index 74509c8..a641326 100644 --- a/src/eventl.c +++ b/src/eventl.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2007, Index Data ApS * See the file LICENSE for details. * - * $Id: eventl.c,v 1.12 2007-11-09 18:47:50 adam Exp $ + * $Id: eventl.c,v 1.13 2007-11-09 18:49:19 adam Exp $ */ /** @@ -26,22 +26,7 @@ #include #endif -#define NPOLL 1 - -#if NPOLL #include -#else - -#ifdef WIN32 -#include -#endif -#if HAVE_UNISTD_H -#include -#endif -#if HAVE_SYS_SELECT_H -#include -#endif -#endif #include #include @@ -50,15 +35,6 @@ #include "session.h" #include -#if YAZ_GNU_THREADS -#include -#define YAZ_EV_SELECT pth_select -#endif - -#ifndef YAZ_EV_SELECT -#define YAZ_EV_SELECT select -#endif - static int log_level=0; static int log_level_initialized=0; @@ -116,16 +92,10 @@ int event_loop(IOCHAN *iochans) do /* loop as long as there are active associations to process */ { IOCHAN p, nextp; -#if NPOLL int i; int tv_sec = 3600; int no_fds = 0; struct yaz_poll_fd *fds = 0; -#else - fd_set in, out, except; - static struct timeval to; - int max; -#endif int res; time_t now = time(0); @@ -134,7 +104,6 @@ int event_loop(IOCHAN *iochans) for (p = *iochans; p; p = p->next) p->force_event = EVENT_TIMEOUT; } -#if NPOLL for (p = *iochans; p; p = p->next) no_fds++; fds = xmalloc(no_fds * sizeof(*fds)); @@ -166,43 +135,6 @@ int event_loop(IOCHAN *iochans) fds[i].input_mask = input_mask; } res = yaz_poll(fds, no_fds, tv_sec); -#else - FD_ZERO(&in); - FD_ZERO(&out); - FD_ZERO(&except); - to.tv_sec = 3600; - to.tv_usec = 0; - max = 0; - for (p = *iochans; p; p = p->next) - { - time_t w, ftime; - yaz_log(log_level, "fd=%d flags=%d force_event=%d", - p->fd, p->flags, p->force_event); - if (p->force_event) - to.tv_sec = 0; /* polling select */ - if (p->flags & EVENT_INPUT) - FD_SET(p->fd, &in); - if (p->flags & EVENT_OUTPUT) - FD_SET(p->fd, &out); - if (p->flags & EVENT_EXCEPT) - FD_SET(p->fd, &except); - if (p->fd > max) - max = p->fd; - if (p->max_idle && p->last_event) - { - ftime = p->last_event + p->max_idle; - if (ftime < now) - w = p->max_idle; - else - w = ftime - now; - if (w < to.tv_sec) - to.tv_sec = w; - } - } - yaz_log(log_level, "select start %ld", (long) to.tv_sec); - res = YAZ_EV_SELECT(max + 1, &in, &out, &except, &to); - yaz_log(log_level, "select end"); -#endif if (res < 0) { if (yaz_errno() == EINTR) @@ -229,7 +161,6 @@ int event_loop(IOCHAN *iochans) } } now = time(0); -#if NPOLL for (i = 0, p = *iochans; p; p = p->next, i++) { int force_event = p->force_event; @@ -262,38 +193,6 @@ int event_loop(IOCHAN *iochans) } } xfree(fds); -#else - for (p = *iochans; p; p = p->next) - { - int force_event = p->force_event; - - p->force_event = 0; - if (!p->destroyed && (FD_ISSET(p->fd, &in) || - force_event == EVENT_INPUT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_INPUT); - } - if (!p->destroyed && (FD_ISSET(p->fd, &out) || - force_event == EVENT_OUTPUT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_OUTPUT); - } - if (!p->destroyed && (FD_ISSET(p->fd, &except) || - force_event == EVENT_EXCEPT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_EXCEPT); - } - if (!p->destroyed && ((p->max_idle && now - p->last_event >= - p->max_idle) || force_event == EVENT_TIMEOUT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_TIMEOUT); - } - } -#endif for (p = *iochans; p; p = nextp) { nextp = p->next;