* sysdeps/unix/sysv/linux/Versions: Export Inotify_* syscalls.
authorUlrich Drepper <drepper@redhat.com>
Tue, 23 Aug 2005 14:33:08 +0000 (14:33 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 23 Aug 2005 14:33:08 +0000 (14:33 +0000)
ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/timer_routines.c
sysdeps/unix/sysv/linux/Versions

index e0763ab..e484850 100644 (file)
--- 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
index 48dd6dc..7d103e6 100644 (file)
@@ -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]
index 23c800f..e5214e6 100644 (file)
@@ -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);
 
index 980724e..b34fd31 100644 (file)
@@ -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;