This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: realtime signals corrupted by pause() on ia64
sorry scratch that above, this is what i meant to attach.
--- /home/ianw/libc/sysdeps/unix/sysv/linux/sigset-cvt-mask.h 2002-09-06 04:51:45.000000000 +1000
+++ sysdeps/unix/sysv/linux/sigset-cvt-mask.h 2003-02-24 16:47:22.000000000 +1100
@@ -22,19 +22,13 @@
static inline int __attribute__ ((unused))
sigset_set_old_mask (sigset_t *set, int mask)
{
- unsigned long int *ptr;
- int cnt;
-
- ptr = &set->__val[0];
-
- *ptr++ = (unsigned int) mask;
-
- cnt = _SIGSET_NWORDS - 2;
- do
- *ptr++ = 0ul;
- while (--cnt >= 0);
-
- return 0;
+ int __sig;
+ for ( __sig = 1 ; __sig < NSIG && __sig < SIGRTMIN ; __sig++ ) {
+ if ( mask & sigmask(__sig) )
+ if ( __sigaddset(set, __sig) < 0 )
+ return -1;
+ }
+ return 0;
}
static inline int __attribute__ ((unused))