SV_WAIT(D3)

SV_WAIT - sleep on a synchronization variable

As shipped in IRIX 6.5.22. Last changed in IRIX 6.5.15.

NAME
     SV_WAIT - sleep on a synchronization variable

SYNOPSIS
     #include <sys/ksynch.h>
     #include <sys/ddi.h>
     void SV_WAIT(sv_t *svp, void *lkp, int rv);

   Arguments
     svp       Pointer to the synchronization variable on which to sleep.

     lkp       Pointer to either a basic lock or a mutual exclusion lock.

     rv        Return value from LOCK(D3), or 0.

DESCRIPTION
     SV_WAIT causes the calling process to go to sleep waiting for a call to
     SV_SIGNAL or SV_BROADCAST for the synchronization variable specified by
     svp.

     The lock specified by lkp must be held by the caller upon entry.  The
     lock is released after the process is queued on the synchronization
     variable -- when the caller returns from SV_WAIT the lock is not held.
     If lkp specifies a basic lock, rv must specify the return value from the
     lock acquisition call; if lkp specifies a mutual exclusion (sleeping)
     lock, rv must be 0.

   Return Values
     None

   Level
     Base only.

   Synchronization Constraints
     Will sleep.

     Driver-defined basic locks (with the exception of the lock specified by
     lkp) may not be held across calls to this function.

     Driver-defined sleep locks may be held across calls to this function.

REFERENCES
     LOCK(D3), UNLOCK(D3), MUTEX_LOCK(D3), MUTEX_UNLOCK(D3), SV_ALLOC(D3),
     SV_INIT(D3), SV_DEALLOC(D3), SV_DESTROY(D3), SV_WAIT_SIG(D3),
     SV_SIGNAL(D3), SV_BROADCAST(D3).