Fix signal handler

SF Markus Elfring elfring at users.sourceforge.net
Sun Sep 23 19:40:59 CEST 2012


> 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?

I would see it as an "open issue" (or more a bug) for a specific implementation
detail where I would like to recommend a few corrections.

The expectations from an information in the documentation like the following can
not be completely satisfied at the moment.
'ev_feed_signal (int signum)
    This function can be used to "simulate" a signal receive. It is completely
safe to call this function at any time, from any context, including signal
handlers or random threads.'
http://linux.die.net/man/3/ev


> 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.

I imagine that the affected function could be made async-signal-safe if all
received signal numbers will be written to a dedicated pipe.
http://cr.yp.to/docs/selfpipe.html


> 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 :)

Would the pipe approach be acceptable for you?


Does it make sense to choose such implementation details also by a build
configuration?
http://cvs.schmorp.de/libev/configure.ac?revision=1.34&view=markup

Regards,
Markus



More information about the libev mailing list