FreeBSD/lib/libthr/thread/thr_syscalls.c
/*
 * Cancellation behavior:
 *   Thread may be canceled at start, but if the system call returns something,
 *   the thread is not canceled.
 */
Cancellation behavior:
Thread may be canceled at start, but if the system call returns something,
the thread is not canceled.
Cancellation behavior : Thread may be canceled at start but if the system call returns something the thread is not canceled .
static int
__thr_ppoll(struct pollfd pfd[], nfds_t nfds, const struct timespec *
    timeout, const sigset_t *newsigmask)
{
	struct pthread *curthread;
	int ret;
	curthread = _get_curthread();
	_thr_cancel_enter(curthread);
	ret = __sys_ppoll(pfd, nfds, timeout, newsigmask);
	_thr_cancel_leave(curthread, ret == -1);
	return (ret);
}
static int __thr_ppoll ( struct pollfd pfd [ ] , nfds_t nfds , const struct timespec * timeout , const sigset_t * newsigmask ) { struct pthread * curthread ; int ret ; curthread = _get_curthread ( ) ; _thr_cancel_enter ( curthread ) ; ret = __sys_ppoll ( pfd , nfds , timeout , newsigmask ) ; _thr_cancel_leave ( curthread , ret == -1 ) ; return ( ret ) ; }
Cancellation behavior:
   Thread may be canceled at start, but if the system call returns something,
   the thread is not canceled.
Cancellation behavior : Thread may be canceled at start but if the system call returns something the thread is not canceled .