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_pselect(int count, fd_set *rfds, fd_set *wfds, fd_set *efds, 
	const struct timespec *timo, const sigset_t *mask)
{
	struct pthread *curthread;
	int ret;
	curthread = _get_curthread();
	_thr_cancel_enter(curthread);
	ret = __sys_pselect(count, rfds, wfds, efds, timo, mask);
	_thr_cancel_leave(curthread, ret == -1);
	return (ret);
}
static int __thr_pselect ( int count , fd_set * rfds , fd_set * wfds , fd_set * efds , const struct timespec * timo , const sigset_t * mask ) { struct pthread * curthread ; int ret ; curthread = _get_curthread ( ) ; _thr_cancel_enter ( curthread ) ; ret = __sys_pselect ( count , rfds , wfds , efds , timo , mask ) ; _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 .