Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/sys Dump the list of async-signal-safe functions he...



details:   https://anonhg.NetBSD.org/src/rev/081b088637ef
branches:  trunk
changeset: 816498:081b088637ef
user:      dholland <dholland%NetBSD.org@localhost>
date:      Sat Jul 09 23:08:32 2016 +0000

description:
Dump the list of async-signal-safe functions here. It belongs in
programmer-facing docs, not user-facing docs, so shouldn't be in
signal(7).

diffstat:

 lib/libc/sys/sigaction.2 |  158 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 152 insertions(+), 6 deletions(-)

diffs (180 lines):

diff -r cc14d476981f -r 081b088637ef lib/libc/sys/sigaction.2
--- a/lib/libc/sys/sigaction.2  Sat Jul 09 21:15:00 2016 +0000
+++ b/lib/libc/sys/sigaction.2  Sat Jul 09 23:08:32 2016 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: sigaction.2,v 1.47 2015/11/01 08:52:29 wiz Exp $
+.\"    $NetBSD: sigaction.2,v 1.48 2016/07/09 23:08:32 dholland Exp $
 .\"
 .\" Copyright (c) 1980, 1990, 1993
 .\"    The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"    @(#)sigaction.2 8.2 (Berkeley) 4/3/94
 .\"
-.Dd October 31, 2015
+.Dd July 9, 2016
 .Dt SIGACTION 2
 .Os
 .Sh NAME
@@ -302,11 +302,157 @@
 or static scopes) other than setting a variable of the type
 .Vt volatile sig_atomic_t
 is undefined.
+.Ss Signal-safe functions
+Only functions that are guaranteed to be async-signal-safe can safely
+be used in signal handlers.
+These are functions that are either reentrant or non-interruptible.
+(These functions are also the only functions that may be used in a
+child process after doing
+.Xr fork 2
+in a threaded program.)
 .Pp
-Only functions that are async-signal-safe can safely be used in signal
-handlers; see
-.Xr signal 7
-for a complete list.
+The following functions are async-signal-safe.
+Any function not listed
+below is unsafe to use in signal handlers.
+.Pp
+.Xr _Exit 2 ,
+.Xr _exit 2 ,
+.Xr abort 3 ,
+.Xr accept 2 ,
+.Xr access 2 ,
+.\" .Xr aio_error
+.\" .Xr aio_return
+.\" .Xr aio_suspend
+.Xr alarm 3 ,
+.Xr bind 2 ,
+.Xr cfgetispeed 3 ,
+.Xr cfgetospeed 3 ,
+.Xr cfsetispeed 3 ,
+.Xr cfsetospeed 3 ,
+.Xr chdir 2 ,
+.Xr chmod 2 ,
+.Xr chown 2 ,
+.Xr clock_gettime 2 ,
+.Xr close 2 ,
+.Xr connect 2 ,
+.Xr creat 3 ,
+.Xr dup 2 ,
+.Xr dup2 2 ,
+.Xr execle 3 ,
+.Xr execve 2 ,
+.Xr fchmod 2 ,
+.Xr fchown 2 ,
+.Xr fcntl 2 ,
+.Xr fdatasync 2 ,
+.Xr fork 2 ,
+.Xr fpathconf 2 ,
+.Xr fstat 2 ,
+.Xr fsync 2 ,
+.Xr ftruncate 2 ,
+.Xr getegid 2 ,
+.Xr geteuid 2 ,
+.Xr getgid 2 ,
+.Xr getgroups 2 ,
+.Xr getpeername 2 ,
+.Xr getpgrp 2 ,
+.Xr getpid 2 ,
+.Xr getppid 2 ,
+.Xr getsockname 2 ,
+.Xr getsockopt 2 ,
+.Xr getuid 2 ,
+.Xr kill 2 ,
+.Xr link 2 ,
+.Xr listen 2 ,
+.Xr lseek 2 ,
+.Xr lstat 2 ,
+.Xr mkdir 2 ,
+.Xr mkfifo 2 ,
+.Xr open 2 ,
+.Xr pathconf 2 ,
+.Xr pause 3 ,
+.Xr pipe 2 ,
+.Xr poll 2 ,
+.\" .Xr posix_trace_event 2
+.\" .Xr pselect 2
+.Xr pthread_mutex_unlock 3 ,
+.Xr raise 3 ,
+.Xr read 2 ,
+.Xr readlink 2 ,
+.Xr recv 2 ,
+.Xr recvfrom 2 ,
+.Xr recvmsg 2 ,
+.Xr rename 2 ,
+.Xr rmdir 2 ,
+.Xr select 2 ,
+.Xr sem_post 3 ,
+.Xr send 2 ,
+.Xr sendmsg 2 ,
+.Xr sendto 2 ,
+.Xr setgid 2 ,
+.Xr setpgid 2 ,
+.Xr setsid 2 ,
+.Xr setsockopt 2 ,
+.Xr setuid 2 ,
+.Xr shutdown 2 ,
+.Xr sigaction 2 ,
+.Xr sigaddset 3 ,
+.Xr sigdelset 3 ,
+.Xr sigemptyset 3 ,
+.Xr sigfillset 3 ,
+.Xr sigismember 3 ,
+.Xr sleep 3 ,
+.Xr signal 3 ,
+.Xr sigpause 3 ,
+.Xr sigpending 2 ,
+.Xr sigprocmask 2 ,
+.\" .Xr sigqueue
+.Xr sigset 3 ,
+.Xr sigsuspend 2 ,
+.Xr sockatmark 3 ,
+.Xr socket 2 ,
+.Xr socketpair 2 ,
+.Xr stat 2 ,
+.Xr symlink 2 ,
+.Xr sysconf 3 ,
+.Xr tcdrain 3 ,
+.Xr tcflow 3 ,
+.Xr tcflush 3 ,
+.Xr tcgetattr 3 ,
+.Xr tcgetpgrp 3 ,
+.Xr tcsendbreak 3 ,
+.Xr tcsetattr 3 ,
+.Xr tcsetpgrp 3 ,
+.Xr time 3 ,
+.Xr timer_getoverrun 2 ,
+.Xr timer_gettime 2 ,
+.Xr timer_settime 2 ,
+.Xr times 3 ,
+.Xr umask 2 ,
+.Xr uname 3 ,
+.Xr unlink 2 ,
+.Xr utime 3 ,
+.Xr wait 2 ,
+.Xr waitpid 2 ,
+.Xr write 2 .
+.Sh SEE ALSO
+.Xr kill 1 ,
+.Xr kill 2 ,
+.Xr ptrace 2 ,
+.Xr sigaction 2 ,
+.Xr sigaltstack 2 ,
+.Xr sigprocmask 2 ,
+.Xr sigstack 2 ,
+.Xr sigsuspend 2 ,
+.Xr fpgetmask 3 ,
+.Xr fpsetmask 3 ,
+.Xr setjmp 3 ,
+.Xr sigblock 3 ,
+.Xr siginterrupt 3 ,
+.Xr signal 3 ,
+.Xr sigpause 3 ,
+.Xr sigsetmask 3 ,
+.Xr sigsetops 3 ,
+.Xr tty 4
 .Sh NOTES
 The mask specified in
 .Fa act



Home | Main Index | Thread Index | Old Index