diff --git a/mrbgems/mruby-task/src/task_queue.c b/mrbgems/mruby-task/src/task_queue.c index 210b1240b..bf1884c38 100644 --- a/mrbgems/mruby-task/src/task_queue.c +++ b/mrbgems/mruby-task/src/task_queue.c @@ -140,6 +140,9 @@ queue_pop_try(mrb_state *mrb, mrb_value self) mrb_raise(mrb, E_RUNTIME_ERROR, "blocking pop can only be called from within a task"); } + /* Blocking pop requires the scheduler to be running */ + task_check_scheduler_lock(mrb); + /* Guard against yielding from inside a C function boundary */ mrb_callinfo *ci; for (ci = mrb->c->ci; ci >= mrb->c->cibase; ci--) {