diff --git a/src/kernel/task/signal.rs b/src/kernel/task/signal.rs index 5ef28ae6..ac2cfe95 100644 --- a/src/kernel/task/signal.rs +++ b/src/kernel/task/signal.rs @@ -229,10 +229,9 @@ impl SignalList { ); } - eonix_preempt::disable(); - // `SIGSTOP` can only be waken up by `SIGCONT` or `SIGKILL`. - // SAFETY: Preempt disabled above. + // Preemption must stay enabled here: `stackful` rejects + // blocking (returning `Pending`) with preemption disabled. Runtime::block_till_woken(|waker| { let mut inner = self.inner.lock(); let old_waker = inner.stop_waker.replace(waker.clone());