unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.9)
Page:
Section:
Apropos / Subsearch:
optional field



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 atomi-
     cally 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 sema-
     phore, 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



SunOS 5.9            Last change: 8 May 1998                    1






System Calls                                    _lwp_sema_wait(2)



           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.9            Last change: 8 May 1998                    2