diff options
author | Greg Hazel <ghazel@gmail.com> | 2015-03-24 17:29:40 -0700 |
---|---|---|
committer | Greg Hazel <ghazel@gmail.com> | 2015-03-24 17:29:40 -0700 |
commit | 38cef641c4c8ca03ae7bd90b44181262657f92ff (patch) | |
tree | ffecc744e79caf1c293b5396ce5a537b6c80f4d2 /event.c | |
parent | 31c6d45f8dd496d8968ede2eceea30482830fe6b (diff) | |
download | libevent-38cef641c4c8ca03ae7bd90b44181262657f92ff.tar.gz |
fix the return value of event_deferred_cb_schedule_
Diffstat (limited to 'event.c')
-rw-r--r-- | event.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -2931,16 +2931,17 @@ event_callback_activate_nolock_(struct event_base *base, return r; } -void +int event_callback_activate_later_nolock_(struct event_base *base, struct event_callback *evcb) { if (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) - return; + return 0; event_queue_insert_active_later(base, evcb); if (EVBASE_NEED_NOTIFY(base)) evthread_notify_base(base); + return 1; } void @@ -3025,10 +3026,12 @@ event_deferred_cb_schedule_(struct event_base *base, struct event_callback *cb) base = current_base; EVBASE_ACQUIRE_LOCK(base, th_base_lock); if (base->n_deferreds_queued > MAX_DEFERREDS_QUEUED) { - event_callback_activate_later_nolock_(base, cb); + r = event_callback_activate_later_nolock_(base, cb); } else { - ++base->n_deferreds_queued; r = event_callback_activate_nolock_(base, cb); + if (r) { + ++base->n_deferreds_queued; + } } EVBASE_RELEASE_LOCK(base, th_base_lock); return r; |