mirror of
https://github.com/RGBCube/serenity
synced 2025-07-23 16:47:41 +00:00
Process: Now that Thread::for_each are composable, we can reuse them rather than rewriting them
This avoids exposing the runnable lists to Process.
This commit is contained in:
parent
e74dce65e6
commit
3727a06c78
1 changed files with 6 additions and 16 deletions
|
@ -426,22 +426,12 @@ inline void Process::for_each_thread(Callback callback) const
|
||||||
{
|
{
|
||||||
InterruptDisabler disabler;
|
InterruptDisabler disabler;
|
||||||
pid_t my_pid = pid();
|
pid_t my_pid = pid();
|
||||||
for (auto* thread = g_runnable_threads->head(); thread;) {
|
Thread::for_each([callback, my_pid](Thread& thread) -> IterationDecision {
|
||||||
auto* next_thread = thread->next();
|
if (thread.pid() == my_pid)
|
||||||
if (thread->pid() == my_pid) {
|
return callback(thread);
|
||||||
if (callback(*thread) == IterationDecision::Break)
|
|
||||||
break;
|
return IterationDecision::Continue;
|
||||||
}
|
});
|
||||||
thread = next_thread;
|
|
||||||
}
|
|
||||||
for (auto* thread = g_nonrunnable_threads->head(); thread;) {
|
|
||||||
auto* next_thread = thread->next();
|
|
||||||
if (thread->pid() == my_pid) {
|
|
||||||
if (callback(*thread) == IterationDecision::Break)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
thread = next_thread;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Callback>
|
template<typename Callback>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue