diff options
author | Nick Mathewson <nickm@torproject.org> | 2010-08-17 13:18:18 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2010-08-17 13:18:18 -0400 |
commit | e0972c21389a45c60606ce2b842311c27fea2147 (patch) | |
tree | 5e05f7e83500e7debb4921468c0b01f5370b558c /evutil.h | |
parent | d4977b52f07d61e215e5d5e98af2216719c06d16 (diff) | |
download | libevent-e0972c21389a45c60606ce2b842311c27fea2147.tar.gz |
Use conditions instead of current_event_lock to fix a deadlock.
Avi Bab correctly noted as bug 3044479 the fact that any thread
blocking on current_event_lock will do so while holding
th_base_lock, making it impossible for the currently running event's
callback to call any other functions that require th_base_lock.
This patch switches the current_event_lock code to instead use a
condition variable that we wait on if we're trying to mess with
a currently-executing event, and that we signal when we're done
executing a callback if anybody is waiting on it.
Diffstat (limited to 'evutil.h')
0 files changed, 0 insertions, 0 deletions