openbsd-20021119
[openafs.git] / src / afs / OBSD / osi_sleep.c
index c411443..f22922f 100644 (file)
@@ -86,6 +86,8 @@ int afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok)
     endTime = osi_Time() + (ams / 1000);
     if (ahandle)
        ahandle->proc = (caddr_t) curproc;
+    AFS_ASSERT_GLOCK();
+    AFS_GUNLOCK();
     do {
        if (aintok) {
            code = tsleep(&waitV, PCATCH | (PZERO+8), "afs_osi_Wait", timo);
@@ -100,17 +102,24 @@ int afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok)
            break;
        }
     } while (osi_Time() < endTime);
+    AFS_GLOCK();
     return code;
 }
 
 void afs_osi_Sleep(void *event)
 {
+    AFS_ASSERT_GLOCK();
+    AFS_GUNLOCK();
     tsleep(event, PVFS, "afs", 0);
+    AFS_GLOCK();
 }
 
 int afs_osi_SleepSig(void *event)
 {
+    AFS_ASSERT_GLOCK();
+    AFS_GUNLOCK();
     tsleep(event, PVFS, "afs", 0);
+    AFS_GLOCK();
     return 0;
 }