| 3155 | .si_addr = nullptr, |
| 3156 | .si_status = __WGENEXITCODE(0, signal), |
| 3157 | .si_band = 0, |
| 3158 | .si_value = { .sival_int = 0 }, |
| 3159 | }); |
| 3160 | |
| 3161 | if (!parent->m_threads.empty()) |
| 3162 | Processor::scheduler().unblock_thread(parent->m_threads.front()); |
| 3163 | } |
| 3164 | } |
| 3165 | |
| 3166 | void Process::wait_while_stopped() |
| 3167 | { |
| 3168 | if (!m_stopped) [[likely]] |
| 3169 | return; |
| 3170 | |
| 3171 | for (;;) |
| 3172 | { |
| 3173 | while (Thread::current().will_exit_because_of_signal()) |
| 3174 | Thread::current().handle_signal_if_interrupted(); |
| 3175 | |
| 3176 | SpinLockGuard guard(m_signal_lock); |
| 3177 | if (!m_stopped) |
no test coverage detected