Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ waitsem(S) — Xenix 2.3.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

creatsem(S)

opensem(S)

sigsem(S)



     WAITSEM(S)               XENIX System V                WAITSEM(S)



     Name
          waitsem, nbwaitsem - Awaits and checks access to a resource
          governed by a semaphore.

     Syntax
          int waitsem(sem_num);
          int sem_num;

          int nbwaitsem(sem_num);
          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 wishing 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.

     System Compatibility
          waitsem can only be used to synchronize semaphores created
          under
           Version 3.0, not for  System V semaphores.

     See Also
          creatsem(S), opensem(S), sigsem(S)

     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
          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 an intervening sigsem, errno is set to EINVAL.

     Notes
          This feature is a XENIX specific enhancement and may not be
          present in all UNIX implementations.  This routine must be
          linked with the linker option -lx.





     Page 1                                           (printed 8/7/87)



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