_lwp_sema_post(2)


_lwp_sema_post -- release a semaphore

Synopsis

   #include <synch.h>
   

int _lwp_sema_post(_lwp_sema_t *sema);

Parameters


sema
pointer to the semaphore to increment

Description

_lwp_sema_post releases a resource under the semaphore pointed to by sema acquired by a previous call to either _lwp_sema_wait or _lwp_sema_trywait, and if the new count value is less than or equal to zero, the next lightweight process (LWP) waiting at the semaphore will be made runnable.

If more than one LWP is waiting, release from the blocked group is scheduling policy specific.

sema parameter

sema must previously have been initialized, either by _lwp_sema_init or statically (see _lwp_sema_init).

Return values

_lwp_sema_post returns zero on success and an error number for failure, as described below.

Errors

If any of the following conditions is detected, _lwp_sema_post fails and returns the corresponding value:

EFAULT
The sema parameter points to an illegal address. (This error may not be detected; a SIGSEGV signal may be posted to the faulting LWP if an illegal address is used.)

References

_lwp_sema_init(2), _lwp_sema_trywait(2), _lwp_sema_wait(2), sema_destroy(3synch), sema_init(3synch), sema_post(3synch), sema_wait(3synch), sema_trywait(3synch)

Notices

Lightweight processes (LWPs) are internal interfaces and are subject to change. Their use should be avoided.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004