diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c index 70d48a01e..3ecd01dc3 100644 --- a/mrbgems/mruby-io/src/io.c +++ b/mrbgems/mruby-io/src/io.c @@ -1268,8 +1268,13 @@ mrb_io_s_select(mrb_state *mrb, mrb_value klass) retry: n = select(max, rp, wp, ep, tp); if (n < 0) { +#ifdef _WIN32 + if (WSAGetLastError() != WSAEINTR) + mrb_sys_fail(mrb, "select failed"); +#else if (errno != EINTR) mrb_sys_fail(mrb, "select failed"); +#endif if (tp == NULL) goto retry; interrupt_flag = 1;