osi_linux_unmask() needs to explicitly flush_signals() before calling
authorDerek Atkins <warlord@mit.edu>
Wed, 15 May 2002 21:04:15 +0000 (21:04 +0000)
committerGarry Zacheiss <zacheiss@mit.edu>
Wed, 15 May 2002 21:04:15 +0000 (21:04 +0000)
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.

src/afs/LINUX/osi_misc.c
src/rx/LINUX/rx_knet.c

index b6adbbd..17eb4c2 100644 (file)
@@ -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);
 }
index 6d804c5..235253a 100644 (file)
@@ -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);