Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

_lwp_exit(2)

waitid(2)






       _lwp_wait(2)                                            _lwp_wait(2)


       NAME
             _lwp_wait - wait for termination of a sibling LWP

       SYNOPSIS
             #include <sys/types.h>
             #include <sys/lwp.h>
             int _lwp_wait(lwpid_t wait_for, lwpid_t *departed_lwp);

          Parameters
             wait_for       LWP ID of the sibling LWP to wait for

             departed_lwp   pointer to the LWP ID of the terminated sibling
                            LWP

       DESCRIPTION
             _lwp_wait waits for termination of a sibling lightweight
             process (LWP).  and, if the value of the pointer departed_lwp
             is non-NULL, _lwp_wait sets the location pointed to by
             departed_lwp to the identifier of the terminated sibling LWP.

             Only LWPs created without the LWP_DETACHED flag can be
             _lwp_waited for.

          wait_for Parameter
              wait_for is the LWP ID of a sibling LWP.  If wait_for is
             equal to the identifier of a currently existing sibling LWP,
             the function waits until that LWP terminates.

             If wait_for is equal to (lwpid_t)0, _lwp_wait will return when
             any sibling LWP exits and this LWP was successful in waiting
             for it.

             If wait_for has already terminated, _lwp_wait returns
             immediately.

             If wait_for has already been _lwp_waited for, or otherwise is
             not known by the implementation, an error indication is
             returned.

          departed_lwp Parameter
             If the value of the pointer departed_lwp is non-NULL, the
             location pointed to by departed_lwp is set to the identifier
             of the terminated sibling LWP.





                           Copyright 1994 Novell, Inc.               Page 1













      _lwp_wait(2)                                            _lwp_wait(2)


            At most one LWP can successfully return from an _lwp_wait due
            to the termination of a given departed_lwp.  If more than one
            LWP is waiting for a specific departed_lwp, one is successful
            and the others return ESRCH.

         Return Values
            _lwp_wait returns zero on success, and if the value of the
            pointer departed_lwp is non-NULL sets the location pointed to
            by departed_lwp to the identifier of the terminated sibling
            LWP.  On failure, _lwp_wait returns an error number, as
            described below.

         Errors
            If any of the following conditions is detected, _lwp_wait
            returns the corresponding value:

            EINTR    The _lwp_wait was interrupted by a signal.

            If any of the following conditions occur, _lwp_wait returns
            the appropriate value:

            ESRCH    No LWP can be found in the current process with
                     identity wait_for, or there is an LWP with identity
                     wait_for but it was created with the LWP_DETACHED
                     flag set.

            EDEADLK  The calling LWP is attempting to _lwp_wait for
                     itself.

            EDEADLK  The calling LWP is waiting for any LWP and there is
                     only one LWP in the process.

      REFERENCES
            _lwp_exit(2), waitid(2).

      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