libev port crash in solaris

Vinubalaji Gopal vinubalaji at
Thu Apr 17 22:42:18 CEST 2014

Hi Marc,
  I figured out the problem, it was a problem in errno. I added debug
statements to see what errno was in the multi threaded program and it was
shown as 0 when the crash happened (overwritten by other threads).

I should have read the section about errno rentrancy in the libev man page
before. Thank you for all the help (and the man page entry). Things seem to
be stable now.

       "errno" reentrancy

       The default compile environment on Solaris is unfortunately so
thread-unsafe that you can't even use components/libraries compiled
       without "-D_REENTRANT" in a threaded program, which, of course,
isn't defined by default. A valid, if stupid, implementation choice.

On Wed, Apr 16, 2014 at 10:00 PM, Marc Lehmann <schmorp at> wrote:

> On Wed, Apr 16, 2014 at 02:33:21PM -0700, Vinubalaji Gopal <
> vinubalaji at> wrote:
> >   I see the port based implementation crashes in solaris. I am running
> the
> > latest Solaris (based on the archive suggestions) but it still seem to
> > crash. I did find a case where it crashes immediately (which is good,
> > otherwise it crashes randomly). Any ideas on what could be causing this?
> Since it seems to work for other people, maybe it's a usage bug, such as
> use-after-free or a corrupted watcher? (compile libev with EV_VERIFY=3 to
> maybe catch these).
> Does it only happen with the port backend (you can try with LIBEV_FLAGS=1
> or
> =2 to chose the select or poll backend as comparison)?
> Do you have a minimal testcase that crashes?
> --
>                 The choice of a       Deliantra, the free code+content
>       -----==-     _GNU_    
>       ----==-- _       generation
>       ---==---(_)__  __ ____  __      Marc Lehmann
>       --==---/ / _ \/ // /\ \/ /      schmorp at
>       -=====/_/_//_/\_,_/ /_/\_\
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the libev mailing list