]> granicus.if.org Git - libevent/commitdiff
Make event_base integrity check work on windows
authorNick Mathewson <nickm@torproject.org>
Tue, 24 Jan 2012 20:29:39 +0000 (15:29 -0500)
committerNick Mathewson <nickm@torproject.org>
Tue, 24 Jan 2012 20:29:39 +0000 (15:29 -0500)
evmap.c

diff --git a/evmap.c b/evmap.c
index 829a73e2a4cff0d28c340b37870fef0f02baa007..e3ee403d410bba148134cea1cc66b877742fc1da 100644 (file)
--- a/evmap.c
+++ b/evmap.c
@@ -731,10 +731,13 @@ evmap_check_integrity(struct event_base *base)
 #define EVLIST_X_SIGFOUND 0x1000
 #define EVLIST_X_IOFOUND 0x2000
 
-       int i;
+       evutil_socket_t i;
        struct event *ev;
        struct event_io_map *io = &base->io;
        struct event_signal_map *sigmap = &base->sigmap;
+#ifdef EVMAP_USE_HT
+       struct event_map_entry **mapent;
+#endif
        int nsignals, ntimers, nio;
        nsignals = ntimers = nio = 0;
 
@@ -744,11 +747,17 @@ evmap_check_integrity(struct event_base *base)
                ev->ev_flags &= ~(EVLIST_X_SIGFOUND|EVLIST_X_IOFOUND);
        }
 
-
+#ifdef EVMAP_USE_HT
+       HT_FOREACH(mapent, event_io_map, io) {
+               struct evmap_io *ctx = &(*mapent)->ent.evmap_io;
+               i = (*mapent)->fd;
+#else
        for (i = 0; i < io->nentries; ++i) {
                struct evmap_io *ctx = io->entries[i];
+
                if (!ctx)
                        continue;
+#endif
 
                TAILQ_FOREACH(ev, &ctx->events, ev_io_next) {
                        EVUTIL_ASSERT(!(ev->ev_flags & EVLIST_X_IOFOUND));