Slide 232
Slide 232 text
int
rb_thread_fd_select(int max, rb_fdset_t * read, rb_fdset_t * write,
rb_fdset_t * except, struct timeval *timeout)
{
// ...
BLOCKING_REGION(set->th, {
struct timeval tv;
if (!RUBY_VM_INTERRUPTED(set->th->ec)) {
result = native_fd_select(set->max,
set->rset, set->wset, set->eset,
rb_hrtime2timeval(&tv, to), set->th);
if (result < 0) lerrno = errno;
}
}, ubf_select, set->th, TRUE);
// ...
}
SC@UISFBE@GE@TFMFDUUIFODBMMTOBUJWF@GE@TFMFDU
5IFJOUFSOBMJNQMFNFOUBUJPOPG*0TFMFDU