tevent: merge poll_fresh_fde_destructor() into poll_event_fd_destructor()
authorStefan Metzmacher <metze@samba.org>
Thu, 28 Feb 2013 16:04:00 +0000 (17:04 +0100)
committerKarolin Seeger <kseeger@samba.org>
Wed, 6 Mar 2013 09:12:00 +0000 (10:12 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/tevent/tevent_poll.c

index 6e1c5c39f2d0995d330c06d623df8f73f1fb4df7..792abefd48c97155d849855941cee0040d53aa68 100644 (file)
@@ -219,25 +219,15 @@ static int poll_event_fd_destructor(struct tevent_fd *fde)
        poll_ev = talloc_get_type_abort(
                ev->additional_data, struct poll_event_context);
 
-       poll_ev->fdes[del_idx] = NULL;
-       poll_ev->deleted = true;
-       poll_event_wake_pollthread(poll_ev);
-done:
-       return tevent_common_fd_destructor(fde);
-}
-
-static int poll_fresh_fde_destructor(struct tevent_fd *fde)
-{
-       struct tevent_context *ev = fde->event_ctx;
-       struct poll_event_context *poll_ev;
+       if (del_idx == UINT64_MAX) {
 
-       if (ev == NULL) {
+               DLIST_REMOVE(poll_ev->fresh, fde);
                goto done;
        }
-       poll_ev = talloc_get_type_abort(
-               ev->additional_data, struct poll_event_context);
 
-       DLIST_REMOVE(poll_ev->fresh, fde);
+       poll_ev->fdes[del_idx] = NULL;
+       poll_ev->deleted = true;
+       poll_event_wake_pollthread(poll_ev);
 done:
        return tevent_common_fd_destructor(fde);
 }
@@ -270,7 +260,7 @@ _PRIVATE_ void tevent_poll_event_add_fd_internal(struct tevent_context *ev,
        fde->additional_flags   = UINT64_MAX;
        fde->additional_data    = NULL;
        DLIST_ADD(poll_ev->fresh, fde);
-       talloc_set_destructor(fde, poll_fresh_fde_destructor);
+       talloc_set_destructor(fde, poll_event_fd_destructor);
 }
 
 /*
@@ -454,8 +444,6 @@ static bool poll_event_setup_fresh(struct tevent_context *ev,
                DLIST_REMOVE(poll_ev->fresh, fde);
                DLIST_ADD(ev->fd_events, fde);
 
-               talloc_set_destructor(fde, poll_event_fd_destructor);
-
                poll_ev->num_fds += 1;
        }
        return true;