Skip to content

Commit 063ec0f

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 413e379 commit 063ec0f

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
@@ -288,10 +288,8 @@ void ProcessorBase::exit_trap(TrapFrame& trap, bool handling_exception)
288288
self->smp_process_pending_messages();
289289
#endif
290290

291-
if (current_thread) {
292-
SpinlockLocker thread_lock(current_thread->get_lock());
291+
if (current_thread)
293292
current_thread->check_dispatch_pending_signal(YieldBehavior::FlagYield);
294-
}
295293

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

0 commit comments

Comments
 (0)