Skip to content

Commit

Permalink
* sysdeps/unix/sysv/linux/Versions: Export Inotify_* syscalls.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ulrich Drepper committed Aug 23, 2005
1 parent f9a906e commit fd4af66
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 7 deletions.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 4 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -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]
Expand Down
21 changes: 14 additions & 7 deletions nptl/sysdeps/unix/sysv/linux/timer_routines.c
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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. */
Expand Down Expand Up @@ -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);

Expand Down
3 changes: 3 additions & 0 deletions sysdeps/unix/sysv/linux/Versions
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit fd4af66

Please sign in to comment.