int tcdrain(int fd) { int ret; _thread_enter_cancellation_point(); ret = __tcdrain(fd); _thread_leave_cancellation_point(); return ret; }
int _tcdrain(int fd) { struct pthread *curthread = _get_curthread(); int ret; _thr_cancel_enter(curthread); ret = __tcdrain(fd); _thr_cancel_leave(curthread, 1); return (ret); }