diff --git a/thread.c b/thread.c index 7b8d87ca79..6181a75ae6 100644 --- a/thread.c +++ b/thread.c @@ -3965,6 +3965,15 @@ rb_thread_fd_select(int max, rb_fdset_t * read, rb_fdset_t * write, rb_fdset_t * return 0; } + if (read) { + rb_fd_resize(max - 1, read); + } + if (write) { + rb_fd_resize(max - 1, write); + } + if (except) { + rb_fd_resize(max - 1, except); + } return do_select(max, read, write, except, timeout); }