This made a great improvement – the deadlock still appears
but only on even higher loads. Thanks, Avi From: owner-libevent-users@xxxxxxxxxxxxx
[mailto:owner-libevent-users@xxxxxxxxxxxxx] On Behalf Of Zhou Li I met such deadlock too. It happened under very high load
just as you said. I think the cause is that the call write(th_notify_fd[1]) got
blocked ( sorry I didn't remember the exact position of this call to write
th_notify_fd). In event.c line 2597: /* This can't be right, can it?
We want writes to this socket to just succeed.
evutil_make_socket_nonblocking(base->th_notify_fd[1]); */ When I uncommented this block of code, the deadlock
disappeared. On Sat, Jul 3, 2010 at 1:48 AM, Nick Mathewson <nickm@xxxxxxxxxxxxx> wrote: On Thu, Jul 1, 2010 at 6:44 AM, Avi Bab <avib@xxxxxxxxxx> wrote: > bufferevents are removed from the event_base either by
a third thread or by *********************************************************************** |