On Tue, Jun 12, 2012 at 10:53:10AM +0200, Zsbán Ambrus <amb...@math.bme.hu> 
wrote:
> > -  if (expect_false (signum <= 0 || signum > EV_NSIG))
> > +  if (expect_false (signum <= 0 || signum >= EV_NSIG))
> >     return;
> >
> >   --signum;
> 
> I think your reasoning is incorrect.  While this may seem strange, 64
> (equal to EV_NSIG - 1) is typically a valid signal number on Linux

64 is indeed equal to NSIG - 1, and the condition then becomes:

> > +  if (expect_false (signum <= 0 || signum >= 65))

which allows 64 as signal number.

> > (it's SIGRTMAX, the lowest priority POSIX sigqueue signal).  Thus,
> > libev should support watchers on this signal number.
> 
> Indeed. Thanks for pointing that out.
> 
> /usr/include/asm-generic/signal.h
> #define _NSIG           64

Thats probably the internal kernel header, the user space definition of NSIG
(and _NSIG) is "highest signal number + 1".

On glibc gnu/linux systems, that's 65, allowing 1..64 as signal numbers.

-- 
                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_              http://www.deliantra.net
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schm...@schmorp.de
      -=====/_/_//_/\_,_/ /_/\_\

_______________________________________________
libev mailing list
libev@lists.schmorp.de
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to