- /*
- * If a thread in this task has already
- * called exit(), then halt any others
- * right here.
- */
-
- ut = get_bsdthread_info(th_act_self);
-#ifdef FIXME
- signal_lock(p);
- while (p->exit_thread != self) {
- if (sig_try_locked(p) <= 0) {
- if (get_threadtask(th_act_self) != task) {
- signal_unlock(p);
- return;
- }
- signal_unlock(p);
- thread_terminate(th_act_self);
- thread_funnel_set(kernel_flock, FALSE);
- thread_exception_return();
- /* NOTREACHED */
- }
- sig_lock_to_exit(p);
- }
- signal_unlock(p);
- if (p->p_pid == 1) {
- printf("pid 1 exited (signal %d, exit %d)",
- WTERMSIG(rv), WEXITSTATUS(rv));
-panic("init died\nState at Last Exception:\n\n%s", init_task_failure_data);
- }
-#endif /* FIXME */
-