diff --git a/cont.c b/cont.c index bf540a183f..cb52fe8413 100644 --- a/cont.c +++ b/cont.c @@ -2041,7 +2041,6 @@ rb_fiber_start(void) rb_proc_t *proc; enum ruby_tag_type state; int need_interrupt = TRUE; - VALUE err = Qfalse; VM_ASSERT(th->ec == GET_EC()); VM_ASSERT(FIBER_RESUMED_P(fiber)); @@ -2067,6 +2066,7 @@ rb_fiber_start(void) } EC_POP_TAG(); + VALUE err = Qfalse; if (state) { err = th->ec->errinfo; VM_ASSERT(FIBER_RESUMED_P(fiber)); diff --git a/thread.c b/thread.c index 419bf09151..cbef44a9d4 100644 --- a/thread.c +++ b/thread.c @@ -4408,13 +4408,13 @@ int rb_thread_wait_for_single_fd(int fd, int events, struct timeval *timeout) { struct pollfd fds[2]; - int result = 0, lerrno; - rb_hrtime_t *to, rel, end = 0; + int result = 0; int drained; nfds_t nfds; rb_unblock_function_t *ubf; struct waiting_fd wfd; int state; + volatile int lerrno; wfd.th = GET_THREAD(); wfd.fd = fd; @@ -4427,6 +4427,7 @@ rb_thread_wait_for_single_fd(int fd, int events, struct timeval *timeout) EC_PUSH_TAG(wfd.th->ec); if ((state = EC_EXEC_TAG()) == TAG_NONE) { + rb_hrtime_t *to, rel, end = 0; RUBY_VM_CHECK_INTS_BLOCKING(wfd.th->ec); timeout_prepare(&to, &rel, &end, timeout); fds[0].fd = fd;