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] |