summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thread.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/thread.c b/thread.c
index 5fd7a7f67a..7d1a4ee3fb 100644
--- a/thread.c
+++ b/thread.c
@@ -4342,7 +4342,11 @@ select_single_cleanup(VALUE ptr)
{
struct select_args *args = (struct select_args *)ptr;
- ccan_list_del(&args->wfd.wfd_node);
+ RB_VM_LOCK_ENTER();
+ {
+ ccan_list_del(&args->wfd.wfd_node);
+ }
+ RB_VM_LOCK_LEAVE();
if (args->read) rb_fd_term(args->read);
if (args->write) rb_fd_term(args->write);
if (args->except) rb_fd_term(args->except);