From 9b167d37f12158494616045c4276ed7a5084d951 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Mon, 24 May 2004 09:06:20 +0000 Subject: [PATCH] Added a TODO item git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7630 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/core/signal.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/kernel/core/signal.c b/src/kernel/core/signal.c index bb158d331b..11a91860f2 100644 --- a/src/kernel/core/signal.c +++ b/src/kernel/core/signal.c @@ -52,7 +52,7 @@ handle_signals(struct thread *thread, int state) if (handler->sa_handler == SIG_IGN) { // signal is to be ignored - // XXX apply zombie cleaning on SIGCHLD + // ToDo: apply zombie cleaning on SIGCHLD continue; } if (handler->sa_handler == SIG_DFL) { @@ -85,6 +85,15 @@ handle_signals(struct thread *thread, int state) thread->return_flags |= THREAD_RETURN_INTERRUPTED; RELEASE_THREAD_LOCK(); restore_interrupts(state); + + // ToDo: when we have more than a thread per process, + // it can likely happen (for any thread other than the first) + // that here, interrupts are still disabled. + // Changing the above line with "enable_interrupts()" fixes + // the problem, though we should find its cause. + // We absolutely need interrupts enabled when we enter + // thread_exit(). + thread_exit(); } }