From: Derek Atkins Date: Wed, 15 May 2002 21:04:15 +0000 (+0000) Subject: osi_linux_unmask() needs to explicitly flush_signals() before calling X-Git-Tag: openafs-devel_1_3_3~127 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=8251fc6871a65326150be69b929917b37d83e215;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. --- diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c index b6adbbd9e..17eb4c21d 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);