This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: realtime signals corrupted by pause() on ia64


On Mon, 24 Feb 2003 16:50:07 +1100, 
Ian Wienand <ianw at gelato dot unsw dot edu dot au> wrote:
>+++ sysdeps/unix/sysv/linux/sigset-cvt-mask.h   2003-02-24 16:47:22.000000000 +1100
>+       int __sig;
>+       for ( __sig = 1 ; __sig < NSIG && __sig < SIGRTMIN ; __sig++ ) {
>+               if ( mask & sigmask(__sig) )
>+                       if ( __sigaddset(set, __sig) < 0 )
>+                               return -1;
>+       }
>+       return 0;

Why are RT signals excluded?  The definition for pause() says "The
pause() function shall suspend the calling thread until delivery of a
signal whose action is either to execute a signal-catching function or
to terminate the process".  Nowhere in that definition does it say that
pause() only applies to non-RT signals.

Can somebody point to a spec that says sigset_set_old_mask() or pause()
ignore RT signals?  If not then any code that passes masks as int
instead of sigset_t has to be suspect.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]