On Thu, Aug 26, 2010 at 09:07:08PM +0100, Nicholas Marriott wrote:
> hi
> 
> libevent has this clever stuff to reinitialise signals if the backend
> requires it after calling event_reinit() (typically called after
> fork()).
> 
> unfortunately, it isn't enabled for poll and select, so both parent and
> child continue to use the same socketpair for signals.
> 
> one byte is written into this socketpair to wake up the main event loop
> on a signal, so there is an occasional race between the processes to
> read this byte, causing the losing process to hang, blocked in recv().
> 
> this problem was seen by kili@ during the period tmux was switched to
> poll, i'm pretty surprised others didn't see it as well.
> 
> this is the fix upstream have decided to go with for now, enabling the
> reinit code for all backends (all but poll and select already use it).
> 
> ok?
> 

I haven't observed the issue but the diff is ok by me

-- 
Gilles Chehade

Reply via email to