Module Name: src Committed By: dholland Date: Sat Jul 9 23:08:32 UTC 2016
Modified Files: src/lib/libc/sys: sigaction.2 Log Message: 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). To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/lib/libc/sys/sigaction.2 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/sys/sigaction.2 diff -u src/lib/libc/sys/sigaction.2:1.47 src/lib/libc/sys/sigaction.2:1.48 --- src/lib/libc/sys/sigaction.2:1.47 Sun Nov 1 08:52:29 2015 +++ src/lib/libc/sys/sigaction.2 Sat Jul 9 23:08:32 2016 @@ -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 @@ any activity (such as calling functions 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