diff --git a/Kernel/Scheduler.cpp b/Kernel/Scheduler.cpp index bd630ee4cf..e600161437 100644 --- a/Kernel/Scheduler.cpp +++ b/Kernel/Scheduler.cpp @@ -264,9 +264,13 @@ bool Thread::WaitBlocker::should_unblock(Thread& thread, time_t, long) bool child_exited = child.is_dead(); bool child_stopped = false; if (child.thread_count()) { - auto& child_thread = child.any_thread(); - if (child_thread.state() == Thread::State::Stopped && !child_thread.has_pending_signal(SIGCONT)) - child_stopped = true; + child.for_each_thread([&](auto& child_thread) { + if (child_thread.state() == Thread::State::Stopped && !child_thread.has_pending_signal(SIGCONT)) { + child_stopped = true; + return IterationDecision::Break; + } + return IterationDecision::Continue; + }); } bool wait_finished = ((m_wait_options & WEXITED) && child_exited)