1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:58:12 +00:00

Reduce number of passes in the scheduler by 2.

This commit is contained in:
Andreas Kling 2018-11-07 22:24:20 +01:00
parent 39d2fcbbee
commit 440029c9d1
2 changed files with 23 additions and 16 deletions

View file

@ -857,20 +857,24 @@ void Process::doHouseKeeping()
void Process::for_each(Function<bool(Process&)> callback)
{
ASSERT_INTERRUPTS_DISABLED();
for (auto* process = g_processes->head(); process; process = process->next()) {
for (auto* process = g_processes->head(); process;) {
auto* next_process = process->next();
if (!callback(*process))
break;
process = next_process;
}
}
void Process::for_each_in_pgrp(pid_t pgid, Function<bool(Process&)> callback)
{
ASSERT_INTERRUPTS_DISABLED();
for (auto* process = g_processes->head(); process; process = process->next()) {
for (auto* process = g_processes->head(); process;) {
auto* next_process = process->next();
if (process->pgid() == pgid) {
if (!callback(*process))
break;
}
process = next_process;
}
}