o allow an http request callback to take ownership of a request structure
o allow association of meta data with RPC requests for hook processing
o associate more context for hooks to query such as the connection object
+ o remove pending timeouts on event_base_free()
Changes in 1.4.0:
o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
}
ev = next;
}
+ while ((ev = min_heap_top(&base->timeheap)) != NULL) {
+ event_del(ev);
+ ++n_deleted;
+ }
+
if (n_deleted)
event_debug(("%s: %d events were still set in base",
__func__, n_deleted));
if (base->evsel->dealloc != NULL)
base->evsel->dealloc(base, base->evbase);
- for (i=0; i < base->nactivequeues; ++i)
+ for (i = 0; i < base->nactivequeues; ++i)
assert(TAILQ_EMPTY(base->activequeues[i]));
+
assert(min_heap_empty(&base->timeheap));
min_heap_dtor(&base->timeheap);
cleanup_test();
}
+static void
+test_loopexit_multiple(void)
+{
+ struct timeval tv;
+ struct event_base *base;
+
+ setup_test("Loop Multiple exit: ");
+
+ base = event_base_new();
+
+ tv.tv_usec = 0;
+ tv.tv_sec = 1;
+ event_base_loopexit(base, &tv);
+
+ tv.tv_usec = 0;
+ tv.tv_sec = 2;
+ event_base_loopexit(base, &tv);
+
+ event_base_dispatch(base);
+
+ event_base_free(base);
+
+ test_ok = 1;
+
+ cleanup_test();
+}
+
static void
break_cb(int fd, short events, void *arg)
{
test_loopexit();
test_loopbreak();
+ test_loopexit_multiple();
+
test_nonpersist_readd();
test_multiple_events_for_same_fd();