Regression with libev v3.51 and io watchers on pipes

Marc Lehmann schmorp at
Wed Jan 7 19:11:49 CET 2009

On Wed, Jan 07, 2009 at 01:36:51AM +0200, Graham Leggett <minfrin at> wrote:
> Having recently tried updating from libev v3.49 to v3.51 on MacOSX, I  
> have noticed that my io watchers that watch pipes (fifos, or stdout) no  
> longer work.

Yes, that's a known issue on OS X - libev is supposed to "work around"
this by falling back to ultra-slow mode, but this fallback is not working
with 3.51.

Current cvs (to be released in a few days) has this fixed already, but
3.49 should work fine as well.

A temporary workaround is to set the env variable LIBEV_FLAGS to 1.

> After receiving a single read event, no more read events are received,  
> even when data is written to the pipe and therefore available for  
> reading by the application. In the case of writes, the write event also  
> seems to happen once and then switch itself off.

Yes, poll is horribly hosed on OS X :/

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      pcg at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list