diff --git a/ksrc/nucleus/pod.c b/ksrc/nucleus/pod.c index 9348ce1..ee362df 100644 --- a/ksrc/nucleus/pod.c +++ b/ksrc/nucleus/pod.c @@ -1177,14 +1177,16 @@ void xnpod_delete_thread(xnthread_t *thread) !xnthread_test_state(thread, XNDORMANT) && !xnpod_current_p(thread)) { if (!xnpod_userspace_p()) + { xnshadow_send_sig(thread, SIGKILL, 1); + goto unlock_and_exit; + } /* * Otherwise, assume the interface library has issued * pthread_cancel on the target thread, which should * cause the current service to be called for * self-deletion of that thread. */ - goto unlock_and_exit; } #endif /* CONFIG_XENO_OPT_PERVASIVE */