FreeBSD/lib/libthr/thread/thr_syscalls.c
/*
 * Cancellation behavior:
 *   Thread may be canceled at start, but if the system call returns
 *   a child pid, the thread is not canceled.
 */
Cancellation behavior:
Thread may be canceled at start, but if the system call returns
a child pid, the thread is not canceled.
Cancellation behavior : Thread may be canceled at start but if the system call returns a child pid the thread is not canceled .
static pid_t
__thr_wait4(pid_t pid, int *status, int options, struct rusage *rusage)
{
	struct pthread *curthread;
	pid_t ret;
	curthread = _get_curthread();
	_thr_cancel_enter(curthread);
	ret = __sys_wait4(pid, status, options, rusage);
	_thr_cancel_leave(curthread, ret <= 0);
	return (ret);
}
static pid_t __thr_wait4 ( pid_t pid , int * status , int options , struct rusage * rusage ) { struct pthread * curthread ; pid_t ret ; curthread = _get_curthread ( ) ; _thr_cancel_enter ( curthread ) ; ret = __sys_wait4 ( pid , status , options , rusage ) ; _thr_cancel_leave ( curthread , ret <= 0 ) ; return ( ret ) ; }
Cancellation behavior:
   Thread may be canceled at start, but if the system call returns
   a child pid, the thread is not canceled.
Cancellation behavior : Thread may be canceled at start but if the system call returns a child pid the thread is not canceled .