mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 22:27:42 +00:00
Kernel: Lock should keep a reference to whoever holds the lock
Fixes a crash reported in #3990
This commit is contained in:
parent
046d6855f5
commit
3bda458735
2 changed files with 2 additions and 2 deletions
|
@ -72,7 +72,7 @@ private:
|
|||
// the lock is unlocked, it just means we don't know which threads hold it.
|
||||
// When locked exclusively, this is always the one thread that holds the
|
||||
// lock.
|
||||
Thread* m_holder { nullptr };
|
||||
RefPtr<Thread> m_holder;
|
||||
};
|
||||
|
||||
class Locker {
|
||||
|
|
|
@ -311,7 +311,7 @@ bool Scheduler::donate_to(RefPtr<Thread>& beneficiary, const char* reason)
|
|||
ASSERT(!proc.in_irq());
|
||||
|
||||
if (proc.in_critical() > 1) {
|
||||
scheduler_data.m_pending_beneficiary = *beneficiary; // Save the beneficiary
|
||||
scheduler_data.m_pending_beneficiary = beneficiary; // Save the beneficiary
|
||||
scheduler_data.m_pending_donate_reason = reason;
|
||||
proc.invoke_scheduler_async();
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue