]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE12-solaris-wait-for-listenerproc-to-exit-20020123
authorOmkar Sathe <somkar@in.ibm.com>
Wed, 23 Jan 2002 18:43:47 +0000 (18:43 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 23 Jan 2002 18:43:47 +0000 (18:43 +0000)
like linux, actually wait for listenerproc to finish before freeing the socket

(cherry picked from commit 2742ca8a8ba2fe18b1991fc250f0376010303469)

src/rx/SOLARIS/rx_knet.c
src/rx/rx_kcommon.c

index d884bfc52c00d2477558915ada40478302d418e5..f09e1c421d50ae029fa3da363229f776bd7ffef2 100644 (file)
@@ -281,8 +281,10 @@ int osi_FreeSocket(asocket)
     vnode_t *vp = SOTOV(so);
 
     AFS_STATCNT(osi_FreeSocket);
-    if (rxk_ListenerPid)
+    if (rxk_ListenerPid) {
        kill(rxk_ListenerPid, SIGUSR1);
+       afs_osi_Sleep(&rxk_ListenerPid);
+    }
     return 0;
 }
 
@@ -512,8 +514,10 @@ int osi_FreeSocket(asocket)
     TIUSER *udp_tiptr = (TIUSER *) asocket;    
     AFS_STATCNT(osi_FreeSocket);
 
-    if (rxk_ListenerPid)
+    if (rxk_ListenerPid) {
        kill(rxk_ListenerPid, SIGUSR1);
+       afs_osi_Sleep(&rxk_ListenerPid);
+    }
     return 0;
 }
 
index 8755fb31f4258ae95d888aac995071b738b4ad57..85e52ac037f32382c7e0c56c3a71c30599acd911 100644 (file)
@@ -1059,7 +1059,7 @@ void rxk_Listener(void)
        afs_osi_Wakeup(&afs_termState);
     }
     rxk_ListenerPid = 0;
-#ifdef AFS_LINUX24_ENV
+#if defined(AFS_LINUX22_ENV) || defined(AFS_SUN5_ENV)
     afs_osi_Wakeup(&rxk_ListenerPid);
 #endif
 #ifdef AFS_SUN5_ENV