FreeBSD/lib/libthr/thread/thr_syscalls.c
/*
 * Cancellation behavior:
 *   Thread may be canceled at start, but if the system call sent
 *   data, the thread is not canceled.
 */
Cancellation behavior:
Thread may be canceled at start, but if the system call sent
data, the thread is not canceled.
Cancellation behavior : Thread may be canceled at start but if the system call sent data the thread is not canceled .
static ssize_t
__thr_sendmsg(int s, const struct msghdr *m, int f)
{
	struct pthread *curthread;
	ssize_t ret;
	curthread = _get_curthread();
	_thr_cancel_enter(curthread);
	ret = __sys_sendmsg(s, m, f);
	_thr_cancel_leave(curthread, ret <= 0);
	return (ret);
}
static ssize_t __thr_sendmsg ( int s , const struct msghdr * m , int f ) { struct pthread * curthread ; ssize_t ret ; curthread = _get_curthread ( ) ; _thr_cancel_enter ( curthread ) ; ret = __sys_sendmsg ( s , m , f ) ; _thr_cancel_leave ( curthread , ret <= 0 ) ; return ( ret ) ; }
Cancellation behavior:
   Thread may be canceled at start, but if the system call sent
   data, the thread is not canceled.
Cancellation behavior : Thread may be canceled at start but if the system call sent data the thread is not canceled .