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


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


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