Added back accidentally removed check for B_THREAD_SUSPENDED when
delivering a kill signal. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25102 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -490,13 +490,19 @@ deliver_signal(struct thread *thread, uint signal, uint32 flags)
|
|||||||
|
|
||||||
mainThread->sig_pending |= SIGNAL_TO_MASK(SIGKILLTHR);
|
mainThread->sig_pending |= SIGNAL_TO_MASK(SIGKILLTHR);
|
||||||
// Wake up main thread
|
// Wake up main thread
|
||||||
thread_interrupt(mainThread, true);
|
if (mainThread->state == B_THREAD_SUSPENDED)
|
||||||
|
scheduler_enqueue_in_run_queue(mainThread);
|
||||||
|
else
|
||||||
|
thread_interrupt(mainThread, true);
|
||||||
|
|
||||||
// Supposed to fall through
|
// Supposed to fall through
|
||||||
}
|
}
|
||||||
case SIGKILLTHR:
|
case SIGKILLTHR:
|
||||||
// Wake up suspended threads and interrupt waiting ones
|
// Wake up suspended threads and interrupt waiting ones
|
||||||
thread_interrupt(thread, true);
|
if (thread->state == B_THREAD_SUSPENDED)
|
||||||
|
scheduler_enqueue_in_run_queue(thread);
|
||||||
|
else
|
||||||
|
thread_interrupt(thread, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIGCONT:
|
case SIGCONT:
|
||||||
|
|||||||
Reference in New Issue
Block a user