diff --git a/kernel-src/sys/signal.c b/kernel-src/sys/signal.c index 62180d21..b4c555b6 100644 --- a/kernel-src/sys/signal.c +++ b/kernel-src/sys/signal.c @@ -350,9 +350,9 @@ void signal_signalproc(struct proc_t *proc, int signal) { // XXX possible race condition where a thread will change the process mask or the action of stopping signals // after it was sent to everyone if ((shouldstop || signal == SIGCONT) == false) { + spinlock_release(&proc->threadlistlock); THREAD_LEAVE(thread); PROCESS_LEAVE(proc); - spinlock_release(&proc->threadlistlock); return; } }