From: Derek Atkins Date: Wed, 15 May 2002 21:07:29 +0000 (+0000) Subject: osi_linux_unmask() needs to explicitly flush_signals() before calling X-Git-Tag: openafs-stable-1_2_4 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=f6c3430f9cf5024d9c1171def618373413cbeaca;p=packages%2Fo%2Fopenafs.git osi_linux_unmask() needs to explicitly flush_signals() before calling recalc_sigpending(), otherwise recent kernels don't appear to deliver new instances of any signals already received. Revert back to using SIGKILL at shutdown time, but use SIGKILL instead of explicitly using signal 9, because abstraction is your friend. (cherry picked from commit 8251fc6871a65326150be69b929917b37d83e215) --- diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c index 100936103..d0bcd8faa 100644 --- a/src/afs/LINUX/osi_misc.c +++ b/src/afs/LINUX/osi_misc.c @@ -441,6 +441,7 @@ void osi_linux_mask() { void osi_linux_unmask() { spin_lock_irq(&rxk_ListenerTask->sigmask_lock); sigemptyset(&rxk_ListenerTask->blocked); + flush_signals(rxk_ListenerTask); recalc_sigpending(rxk_ListenerTask); spin_unlock_irq(&rxk_ListenerTask->sigmask_lock); } diff --git a/src/rx/LINUX/rx_knet.c b/src/rx/LINUX/rx_knet.c index 6d804c5b1..235253a8a 100644 --- a/src/rx/LINUX/rx_knet.c +++ b/src/rx/LINUX/rx_knet.c @@ -179,7 +179,7 @@ void osi_StopListener(void) extern int rxk_ListenerPid; while (rxk_ListenerPid) { - (void) (*sys_killp)(rxk_ListenerPid, SIGTERM); + (void) (*sys_killp)(rxk_ListenerPid, SIGKILL); afs_osi_Sleep(&rxk_ListenerPid); } sock_release(rx_socket);