Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

opensem(2)

creatsem(2)



waitsem(2)                SYSTEM CALLS                 waitsem(2)



NAME
     waitsem, nbwaitsem - awaits and checks access to a  resource
     governed by a semaphore.

SYNOPSIS
     cc [flag ...] file ... -lx
     waitsem(int sem_num);

     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  withing  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.

DIAGNOSTICS
     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  sema-
     phore return with errno set to ENAVAIL when the process con-
     trolling 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.

SEE ALSO
     opensem(2), creatsem(2).
















            Last change: XENIX Compatibility Package            1



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026