From e64b864d6d4e020a94d3931704ccea50d1a20b82 Mon Sep 17 00:00:00 2001 From: Austin Foxley Date: Sat, 23 Jan 2010 09:47:03 -0800 Subject: nptl: timer_routines.c (timer_helper_thread): Use sigfillset. Document that sigfillset does the right thing wrt to SIGSETXID. Sync with glibc Signed-off-by: Austin Foxley --- libpthread/nptl/ChangeLog | 5 ++++- libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c | 9 ++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/libpthread/nptl/ChangeLog b/libpthread/nptl/ChangeLog index 7d103e655..92bd22af7 100644 --- a/libpthread/nptl/ChangeLog +++ b/libpthread/nptl/ChangeLog @@ -1,6 +1,8 @@ 2005-08-23 Ulrich Drepper - * sysdeps/unix/sysv/linux/timer_routines.c: Don't block SIGSETXID ever. + * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread): + Use __sigfillset. Document that sigfillset does the right thing wrt + to SIGSETXID. 2005-07-11 Jakub Jelinek @@ -223,6 +225,7 @@ 2005-02-14 Alan Modra + [BZ #721] * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit gcc4. diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c b/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c index 0ddfe8a51..924c524ba 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c @@ -58,9 +58,6 @@ timer_helper_thread (void *arg) sigset_t ss; sigemptyset (&ss); __sigaddset (&ss, SIGTIMER); -#ifdef SIGSETXID - __sigaddset (&ss, SIGSETXID); -#endif /* Endless loop of waiting for signals. The loop is only ended when the thread is canceled. */ @@ -128,14 +125,12 @@ __start_helper_thread (void) /* Block all signals in the helper thread but SIGSETXID. To do this thoroughly we temporarily have to block all signals here. The helper can lose wakeups if SIGCANCEL is not blocked throughout, - but sigfillset omits it. So, we add it back explicitly here. */ + but sigfillset omits it SIGSETXID. So, we add it back + explicitly here. */ sigset_t ss; sigset_t oss; sigfillset (&ss); __sigaddset (&ss, SIGCANCEL); -#ifdef SIGSETXID - __sigdelset (&ss, SIGSETXID); -#endif INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8); -- cgit v1.2.3