Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
System Calls_lwp_sema_wait(2)


NAME

 _lwp_sema_wait, _lwp_sema_trywait, _lwp_sema_init, _lwp_sema_post - semaphore operations

SYNOPSIS

 
#include <sys/lwp.h>
int _lwp_sema_wait(lwp_sema_t *sema);
 int _lwp_sema_trywait(lwp_sema_t *sema);
 int _lwp_sema_init(lwp_sema_t *sema, int count);
 int _lwp_sema_post(lwp_sema_t *sema);

DESCRIPTION

 

Conceptually, a semaphore is an non-negative integer count that is atomically incremented and decremented. Typically this represents the number of resources available. The _lwp_sema_init() function initializes the count, _lwp_sema_post() atomically increments the count, and _lwp_sema_wait() waits for the count to become greater than 0 and then atomically decrements it.

LWP semaphores must be initialized before use. The _lwp_sema_init() function initializes the count associated with the LWP semaphore pointed to by sema to count.

The _lwp_sema_wait() function blocks the calling LWP until the semaphore count becomes greater than 0 and then atomically decrements it.

The _lwp_sema_trywait() function atomically decrements the count if it is greater than zero. Otherwise it returns an error.

The _lwp_sema_post() function atomically increments the semaphore count. If there are any LWPs blocked on the semaphore, one is unblocked.

RETURN VALUES

 

Upon successful completion, 0 is returned. A non-zero value indicates an error.

ERRORS

 

The _lwp_sema_init(), _lwp_sema_trywait(), _lwp_sema_wait(), and _lwp_sema_post() functions will fail if:

EINVAL
The sema argument points to an invalid semaphore.
EFAULT
The sema argument points to an illegal address.

The _lwp_sema_wait() function will fail if:

EINTR
The function execution was interrupted by a signal or fork(2).

The _lwp_sema_trywait() function will fail if:

EBUSY
The function was called on a semaphore with a zero count.

The _lwp_sema_post() function will fail if:

EOVERFLOW
The value of the sema argument exceeds SEM_VALUE_MAX.

SEE ALSO

 

fork(2)


SunOS 5.9Go To TopLast Changed 8 May 1998

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.