Module: wine Branch: master Commit: 3b244b95b29c5c1394b1fdbd1562ae9d2fe736f9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3b244b95b29c5c1394b1fdbd15...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Dec 20 12:19:35 2007 +0100
server: Use SIGQUIT instead of SIGTERM to terminate a thread.
This allows keeping the default SIGTERM behavior of killing the whole process.
---
dlls/ntdll/signal_i386.c | 10 +++++----- dlls/ntdll/signal_powerpc.c | 8 ++++---- dlls/ntdll/signal_sparc.c | 8 ++++---- dlls/ntdll/signal_x86_64.c | 8 ++++---- server/thread.c | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index df62a30..993936e 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -1289,11 +1289,11 @@ static void abrt_handler( int signal, siginfo_t *siginfo, void *sigcontext )
/********************************************************************** - * term_handler + * quit_handler * - * Handler for SIGTERM. + * Handler for SIGQUIT. */ -static void term_handler( int signal, siginfo_t *siginfo, void *sigcontext ) +static void quit_handler( int signal, siginfo_t *siginfo, void *sigcontext ) { WORD fs, gs; init_handler( sigcontext, &fs, &gs ); @@ -1392,8 +1392,8 @@ BOOL SIGNAL_Init(void) if (sigaction( SIGFPE, &sig_act, NULL ) == -1) goto error; sig_act.sa_sigaction = abrt_handler; if (sigaction( SIGABRT, &sig_act, NULL ) == -1) goto error; - sig_act.sa_sigaction = term_handler; - if (sigaction( SIGTERM, &sig_act, NULL ) == -1) goto error; + sig_act.sa_sigaction = quit_handler; + if (sigaction( SIGQUIT, &sig_act, NULL ) == -1) goto error; sig_act.sa_sigaction = usr1_handler; if (sigaction( SIGUSR1, &sig_act, NULL ) == -1) goto error;
diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c index 9f1b52a..a468754 100644 --- a/dlls/ntdll/signal_powerpc.c +++ b/dlls/ntdll/signal_powerpc.c @@ -581,11 +581,11 @@ static HANDLER_DEF(abrt_handler)
/********************************************************************** - * term_handler + * quit_handler * - * Handler for SIGTERM. + * Handler for SIGQUIT. */ -static HANDLER_DEF(term_handler) +static HANDLER_DEF(quit_handler) { server_abort_thread(0); } @@ -657,7 +657,7 @@ BOOL SIGNAL_Init(void) if (set_handler( SIGSEGV, (void (*)())segv_handler ) == -1) goto error; if (set_handler( SIGILL, (void (*)())segv_handler ) == -1) goto error; if (set_handler( SIGABRT, (void (*)())abrt_handler ) == -1) goto error; - if (set_handler( SIGTERM, (void (*)())term_handler ) == -1) goto error; + if (set_handler( SIGQUIT, (void (*)())quit_handler ) == -1) goto error; if (set_handler( SIGUSR1, (void (*)())usr1_handler ) == -1) goto error; #ifdef SIGBUS if (set_handler( SIGBUS, (void (*)())segv_handler ) == -1) goto error; diff --git a/dlls/ntdll/signal_sparc.c b/dlls/ntdll/signal_sparc.c index 5ea9efc..d72269a 100644 --- a/dlls/ntdll/signal_sparc.c +++ b/dlls/ntdll/signal_sparc.c @@ -389,11 +389,11 @@ static HANDLER_DEF(abrt_handler)
/********************************************************************** - * term_handler + * quit_handler * - * Handler for SIGTERM. + * Handler for SIGQUIT. */ -static HANDLER_DEF(term_handler) +static HANDLER_DEF(quit_handler) { server_abort_thread(0); } @@ -468,7 +468,7 @@ BOOL SIGNAL_Init(void) if (set_handler( SIGBUS, (void (*)())bus_handler ) == -1) goto error; if (set_handler( SIGTRAP, (void (*)())trap_handler ) == -1) goto error; if (set_handler( SIGABRT, (void (*)())abrt_handler ) == -1) goto error; - if (set_handler( SIGTERM, (void (*)())term_handler ) == -1) goto error; + if (set_handler( SIGQUIT, (void (*)())quit_handler ) == -1) goto error; if (set_handler( SIGUSR1, (void (*)())usr1_handler ) == -1) goto error; /* 'ta 6' tells the kernel to synthesize any unaligned accesses this process makes, instead of just signalling an error and terminating diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c index 9f77f5e..8225c6a 100644 --- a/dlls/ntdll/signal_x86_64.c +++ b/dlls/ntdll/signal_x86_64.c @@ -414,11 +414,11 @@ static HANDLER_DEF(abrt_handler)
/********************************************************************** - * term_handler + * quit_handler * - * Handler for SIGTERM. + * Handler for SIGQUIT. */ -static HANDLER_DEF(term_handler) +static HANDLER_DEF(quit_handler) { server_abort_thread(0); } @@ -490,7 +490,7 @@ BOOL SIGNAL_Init(void) if (set_handler( SIGSEGV, (void (*)())segv_handler ) == -1) goto error; if (set_handler( SIGILL, (void (*)())segv_handler ) == -1) goto error; if (set_handler( SIGABRT, (void (*)())abrt_handler ) == -1) goto error; - if (set_handler( SIGTERM, (void (*)())term_handler ) == -1) goto error; + if (set_handler( SIGQUIT, (void (*)())quit_handler ) == -1) goto error; if (set_handler( SIGUSR1, (void (*)())usr1_handler ) == -1) goto error; #ifdef SIGBUS if (set_handler( SIGBUS, (void (*)())segv_handler ) == -1) goto error; diff --git a/server/thread.c b/server/thread.c index 5725ec1..a7d51a1 100644 --- a/server/thread.c +++ b/server/thread.c @@ -920,14 +920,14 @@ void kill_thread( struct thread *thread, int violent_death ) { while (thread->wait) end_wait( thread ); send_thread_wakeup( thread, NULL, STATUS_PENDING ); - /* if it is waiting on the socket, we don't need to send a SIGTERM */ + /* if it is waiting on the socket, we don't need to send a SIGQUIT */ violent_death = 0; } kill_console_processes( thread, 0 ); debug_exit_thread( thread ); abandon_mutexes( thread ); wake_up( &thread->obj, 0 ); - if (violent_death) send_thread_signal( thread, SIGTERM ); + if (violent_death) send_thread_signal( thread, SIGQUIT ); cleanup_thread( thread ); remove_process_thread( thread->process, thread ); release_object( thread );