aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--nptl/ChangeLog4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_routines.c21
-rw-r--r--sysdeps/unix/sysv/linux/Versions3
4 files changed, 25 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index e0763ab04e..e4848509d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-08-23 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/Versions: Export Inotify_* syscalls.
+
2005-08-22 Jakub Jelinek <jakub@redhat.com>
* stdlib/bits/stdlib.h (mbstowcs): Divide __bos (__dst) by
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 48dd6dc792..7d103e6551 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,7 @@
+2005-08-23 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/timer_routines.c: Don't block SIGSETXID ever.
+
2005-07-11 Jakub Jelinek <jakub@redhat.com>
[BZ #1102]
diff --git a/nptl/sysdeps/unix/sysv/linux/timer_routines.c b/nptl/sysdeps/unix/sysv/linux/timer_routines.c
index 23c800f98e..e5214e605d 100644
--- a/nptl/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/nptl/sysdeps/unix/sysv/linux/timer_routines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -53,10 +53,14 @@ timer_sigev_thread (void *arg)
static void *
timer_helper_thread (void *arg)
{
- /* Wait for the SIGTIMER signal and none else. */
+ /* Wait for the SIGTIMER signal, allowing the setXid signal, and
+ none else. */
sigset_t ss;
sigemptyset (&ss);
- sigaddset (&ss, SIGTIMER);
+ __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. */
@@ -121,14 +125,17 @@ __start_helper_thread (void)
(void) pthread_attr_init (&attr);
(void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
- /* Block all signals in the helper thread. 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. */
+ /* 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. */
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);
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 980724e519..b34fd310a3 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -115,6 +115,9 @@ libc {
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
}
+ GLIBC_2.4 {
+ inotify_init; inotify_add_watch; inotify_rm_watch;
+ }
GLIBC_PRIVATE {
# functions used in other libraries
__syscall_rt_sigqueueinfo;