s3: Remove select-based s3 event backend
authorVolker Lendecke <vl@samba.org>
Mon, 7 Feb 2011 14:24:07 +0000 (15:24 +0100)
committerVolker Lendecke <vlendec@samba.org>
Mon, 28 Feb 2011 15:40:19 +0000 (16:40 +0100)
source3/include/event.h
source3/lib/events.c

index c6689d9e919a33d03ee8ebef3808be54eeddcb22..d69b3333366fe14ce65dd95ef9434e381e550cf7 100644 (file)
 
 /* The following definitions come from lib/events.c  */
 
-bool event_add_to_select_args(struct event_context *event_ctx,
-                             fd_set *read_fds, fd_set *write_fds,
-                             struct timeval *timeout, int *maxfd);
-bool run_events(struct event_context *event_ctx,
-               int selrtn, fd_set *read_fds, fd_set *write_fds);
 struct timeval *get_timed_events_timeout(struct event_context *event_ctx,
                                         struct timeval *to_ret);
 void dump_event_list(struct event_context *event_ctx);
index f850d23da23f03448ef823535ec0e63f07b0df38..d19c79e34b2b0f76b8c0339b03d50bd19d30e28f 100644 (file)
 #include "../lib/util/select.h"
 #include "system/select.h"
 
-/*
- * Return if there's something in the queue
- */
-
-bool event_add_to_select_args(struct tevent_context *ev,
-                             fd_set *read_fds, fd_set *write_fds,
-                             struct timeval *timeout, int *maxfd)
-{
-       struct timeval now;
-       struct tevent_fd *fde;
-       struct timeval diff;
-       bool ret = false;
-
-       for (fde = ev->fd_events; fde; fde = fde->next) {
-               if (fde->flags & EVENT_FD_READ) {
-                       FD_SET(fde->fd, read_fds);
-                       ret = true;
-               }
-               if (fde->flags & EVENT_FD_WRITE) {
-                       FD_SET(fde->fd, write_fds);
-                       ret = true;
-               }
-
-               if ((fde->flags & (EVENT_FD_READ|EVENT_FD_WRITE))
-                   && (fde->fd > *maxfd)) {
-                       *maxfd = fde->fd;
-               }
-       }
-
-       if (ev->immediate_events != NULL) {
-               *timeout = timeval_zero();
-               return true;
-       }
-
-       if (ev->timer_events == NULL) {
-               return ret;
-       }
-
-       now = timeval_current();
-       diff = timeval_until(&now, &ev->timer_events->next_event);
-       *timeout = timeval_min(timeout, &diff);
-
-       return true;
-}
-
-bool run_events(struct tevent_context *ev,
-               int selrtn, fd_set *read_fds, fd_set *write_fds)
-{
-       struct tevent_fd *fde;
-       struct timeval now;
-
-       if (ev->signal_events &&
-           tevent_common_check_signal(ev)) {
-               return true;
-       }
-
-       if (ev->immediate_events &&
-           tevent_common_loop_immediate(ev)) {
-               return true;
-       }
-
-       GetTimeOfDay(&now);
-
-       if ((ev->timer_events != NULL)
-           && (timeval_compare(&now, &ev->timer_events->next_event) >= 0)) {
-               /* this older events system did not auto-free timed
-                  events on running them, and had a race condition
-                  where the event could be called twice if the
-                  talloc_free of the te happened after the callback
-                  made a call which invoked the event loop. To avoid
-                  this while still allowing old code which frees the
-                  te, we need to create a temporary context which
-                  will be used to ensure the te is freed. We also
-                  remove the te from the timed event list before we
-                  call the handler, to ensure we can't loop */
-
-               struct tevent_timer *te = ev->timer_events;
-               TALLOC_CTX *tmp_ctx = talloc_new(ev);
-
-               DEBUG(10, ("Running timed event \"%s\" %p\n",
-                          ev->timer_events->handler_name, ev->timer_events));
-
-               DLIST_REMOVE(ev->timer_events, te);
-               talloc_steal(tmp_ctx, te);
-
-               te->handler(ev, te, now, te->private_data);
-
-               talloc_free(tmp_ctx);
-               return true;
-       }
-
-       if (selrtn <= 0) {
-               /*
-                * No fd ready
-                */
-               return false;
-       }
-
-       for (fde = ev->fd_events; fde; fde = fde->next) {
-               uint16 flags = 0;
-
-               if (FD_ISSET(fde->fd, read_fds)) flags |= EVENT_FD_READ;
-               if (FD_ISSET(fde->fd, write_fds)) flags |= EVENT_FD_WRITE;
-
-               if (flags & fde->flags) {
-                       DLIST_DEMOTE(ev->fd_events, fde, struct tevent_fd);
-                       fde->handler(ev, fde, flags, fde->private_data);
-                       return true;
-               }
-       }
-
-       return false;
-}
-
 struct tevent_poll_private {
        /*
         * Index from file descriptor into the pollfd array