waitsem(2XNX) (XENIX System Compatibility) waitsem(2XNX)
NAME
waitsem, nbwaitsem - (XENIX) await and check access to a
resource governed by a semaphore
SYNOPSIS
cc [flag . . . ] flag . . . -lx
int waitsem(int sem_num);
int nbwaitsem(int sem_num);
DESCRIPTION
waitsem gives the calling process access to the resource
governed by the semaphore sem_num. If the resource is in use
by another process, waitsem will put the process to sleep
until the resource becomes available; nbwaitsem will return
the error ENAVAIL. waitsem and nbwaitsem are used in
conjunction with sigsem to allow synchronization of processes
waiting to access a resource. One or more processes may
waitsem on the given semaphore and will be put to sleep until
the process which currently has access to the resource issues
sigsem. sigsem causes the process which is next in line on
the semaphore's queue to be rescheduled for execution. The
semaphore's queue is organized in First In, First Out (FIFO)
order.
Return Values
waitsem returns the value (int) -1 if an error occurs. If
sem_num has not been previously opened by a call to opensem or
creatsem, errno is set to EBADF. If sem_num does not refer to
a semaphore type file, errno is set to ENOTNAM. All processes
waiting (or attempting to wait) on the semaphore return with
errno set to ENAVAIL when the process controlling the
semaphore exits without relinquishing control (thereby leaving
the resource in an undeterminate state). If a process does
two waitsems in a row without doing a intervening sigsem,
errno is set to EINVAL.
REFERENCES
creatsem(2XNX), opensem(2XNX)
Copyright 1994 Novell, Inc. Page 1