--- a/thread.c
+++ b/thread.c
@@ -2676,6 +2676,7 @@
     if (has_any) {
         wakeup_mutex = rb_mutex_new();
         RBASIC_CLEAR_CLASS(wakeup_mutex); /* hide from ObjectSpace */
+        rb_mutex_allow_trap(wakeup_mutex, 1);
     }
     busy->wakeup_mutex = wakeup_mutex;
 
