Skip to content

Commit 472b64a

Browse files
committed
Kernel: Don't take the thread lock when dispatching signals
This isn't necessary and only leads to deadlocks with SMP.
1 parent e3022e1 commit 472b64a

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

Kernel/Arch/Processor.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,10 +292,8 @@ void ProcessorBase::exit_trap(TrapFrame& trap, bool handling_exception)
292292
self->smp_process_pending_messages();
293293
#endif
294294

295-
if (current_thread) {
296-
SpinlockLocker thread_lock(current_thread->get_lock());
295+
if (current_thread)
297296
current_thread->check_dispatch_pending_signal(YieldBehavior::FlagYield);
298-
}
299297

300298
// Process the deferred call queue. Among other things, this ensures
301299
// that any pending thread unblocks happen before we enter the scheduler.

0 commit comments

Comments
 (0)