This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! sparc64 doesn't provide the pause syscall, so it is emulated using sigsuspend. The following adds __pause_nocancel, which is now required by pthread_mutex_lock.c. 2006-08-09 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc64/pause.c (__pause_nocancel): New function. --- libc/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c 14 Apr 2005 21:44:25 -0000 1.3 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c 9 Aug 2006 19:32:11 -0000 @@ -1,5 +1,5 @@ /* pause -- suspend the process until a signal arrives. POSIX.1 version. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -44,4 +44,15 @@ __libc_pause (void) } weak_alias (__libc_pause, pause) +int +__pause_nocancel (void) +{ + sigset_t set; + + __sigemptyset (&set); + INLINE_SYSCALL (rt_sigprocmask, 4, SIG_BLOCK, CHECK_SIGSET (NULL), + CHECK_SIGSET_NULL_OK (&set), _NSIG / 8); + return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (&set), _NSIG / 8); +} + LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */ Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |