1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 17:55:08 +00:00

Kernel: When donating ticks to a lock holder, cap the donation.

When donating ticks to a lock holder, never donate more ticks than
that process would normally get from the scheduler.
This commit is contained in:
Andreas Kling 2019-02-08 22:06:30 +01:00
parent cb6e852620
commit fa241747af

View file

@ -211,7 +211,7 @@ bool Scheduler::donate_to(Process* beneficiary, const char* reason)
return yield();
}
unsigned ticks_to_donate = ticks_left - 1;
unsigned ticks_to_donate = min(ticks_left - 1, time_slice_for(beneficiary->priority()));
#ifdef SCHEDULER_DEBUG
dbgprintf("%s(%u) donating %u ticks to %s(%u), reason=%s\n", current->name().characters(), current->pid(), ticks_to_donate, beneficiary->name().characters(), beneficiary->pid(), reason);
#endif