aboutsummaryrefslogtreecommitdiffstats
path: root/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/thread.c b/thread.c
index 007a5cbc7b..1512d645ed 100644
--- a/thread.c
+++ b/thread.c
@@ -4504,7 +4504,13 @@ rb_thread_wait_for_single_fd(int fd, int events, struct timeval *timeout)
} while (wait_retryable(&result, lerrno, to, end));
}
EC_POP_TAG();
- list_del(&wfd.wfd_node);
+
+ RB_VM_LOCK_ENTER();
+ {
+ list_del(&wfd.wfd_node);
+ }
+ RB_VM_LOCK_LEAVE();
+
if (state) {
EC_JUMP_TAG(wfd.th->ec, state);
}