Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ _lwp_sema_wait(2) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

_lwp_sema_init(2)

_lwp_sema_post(2)

_lwp_sema_trywait(2)

sema_destroy(3synch)

sema_init(3synch)

sema_post(3synch)

sema_trywait(3synch)

sema_wait(3synch)






       _lwp_sema_wait(2)                                  _lwp_sema_wait(2)


       NAME
             _lwp_sema_wait - acquire a semaphore

       SYNOPSIS
             #include <synch.h>
             int _lwp_sema_wait(_lwp_sema_t *sema);

          Parameters
             sema    pointer to the semaphore to acquire

       DESCRIPTION
             _lwp_sema_wait attempts to acquire the semaphore pointed to by
             sema by decrementing the semaphore value.  If the resulting
             value is greater than or equal to zero, it returns to the
             caller having successfully acquired the lock.  If the
             semaphore count is zero or negative upon entry, _lwp_sema_wait
             suspends execution of the calling lightweight process (LWP)
             and places it on a queue associated with that semaphore where
             it remains until the lock becomes available to the caller, at
             which point _lwp_sema_wait returns with the lock held.

             If an LWP waiting on a semaphore is interrupted by a signal,
             the signal handler will run, but _lwp_sema_wait is always
             restarted so the semaphore is acquired on return.

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

          Return Values
             _lwp_sema_wait returns zero for success and an error number
             for failure, as described below.

          Errors
             If any of the following conditions is detected, _lwp_sema_wait
             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.)
             If any of the following conditions occurs, _lwp_sema_wait
             fails and returns the corresponding value:





                           Copyright 1994 Novell, Inc.               Page 1













      _lwp_sema_wait(2)                                  _lwp_sema_wait(2)


            EINTR    The operation was interrupted by a signal or a fork
                     operation.

      USAGE
            In general, this operation is used to block wait for an event,
            when a critical section is long.

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

      NOTICES
            Lightweight processes (LWPs) are internal interfaces and are
            subject to change.  Their use should be avoided.

































                          Copyright 1994 Novell, Inc.               Page 2








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