Fix signal handler

Marc Lehmann schmorp at
Sun Sep 23 18:25:11 CEST 2012

On Sun, Sep 23, 2012 at 03:51:36PM +0200, SF Markus Elfring <elfring at> wrote:
> It calls the function "ev_feed_signal" which works with the global array
> "signals". I find that the use of this data type is not async-signal-safe for a
> strictly conforming program.

libev is quite obviously not a strictly conforming C99 program to
anything, and can't be as it requires numerous extensions to C99 (posix,
linux etc. a lot of which isn't part of any formal standard).

So the real question is whether this is a bug or not, or in other words,
does this break any of the guarantees that libev gives on any platform
that libev is used on?

> Would you like to look for alternative interfaces which will enable the desired
> data exchange in a safe and robust way?

As far as we know, the current method is already safe and robust, and
evidence to the contrary would be appreciated, but so far, none is known.

If you know of a method that allows us to do this in a practical but still
strictly c99 conforming way that would be cool, but I will not hold my
breath :)

None of this can ever make libev into a strictly conforming c99 program (or
even library, if such a beast existed) though, so if that is your goal for
some theoretical certification reason, it can't be done.

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

More information about the libev mailing list