_lwp_wait(2)
NAME
_lwp_wait - wait for an LWP to terminate
SYNOPSIS
#include <sys/lwp.h>
int _lwp_wait(lwpid_t wait_for, lwpid_t *departed_lwp);
DESCRIPTION
The _lwp_wait() function blocks the current LWP until the
LWP specified by wait_for terminates. If the specified LWP
terminated prior to the call to _lwp_wait(), _lwp_wait()
returns immediately. If wait_for is zero, _lwp_wait() waits
for any undetached LWP in the current process. If wait_for
is not zero, it must specify an undetached LWP in the
current process. If departed_lwp is not NULL, it points to a
location where the ID of the exited LWP is stored (see
_lwp_exit(2)).
When an LWP exits and there are one or more LWPs in the pro-
cess waiting for this specific LWP to exit, one of the wait-
ing LWPs is unblocked and it returns from _lwp_wait() suc-
cessfully. Any other LWPs waiting for this same LWP to exit
are also unblocked, but they return from _lwp_wait() with an
error (ESRCH) indicating the waited-for LWP no longer
exists. If there are no LWPs in the process waiting for this
specific LWP to exit but there are one or more LWPs waiting
for any LWP to exit, one of the waiting LWPs is unblocked
and it returns from _lwp_wait() successfully.
If an LWP is waiting for any LWP to exit, it blocks until an
undetached LWP for which no other LWP is waiting terminates,
at which time it returns successfully, or until all other
LWPs in the process are either daemon LWPs or LWPs waiting
in _lwp_wait(), in which case it returns EDEADLK.
The ID of an LWP that has exited may be reused via
_lwp_create() after the LWP has been successfully waited
for.
RETURN VALUES
Upon successful completion, 0 is returned. A non-zero value
indicates an error.
ERRORS
If any of the following conditions occur, _lwp_wait() fails
and returns the corresponding value:
EDEADLK
A wait deadlock was detected, such as when an LWP
attempts to wait for itself, or the calling LWP is
waiting for any LWP to exit and only daemon LWPs or
waiting LWPs exist in the process.
EINTR The _lwp_wait() function was interrupted by a signal.
EINVAL
The LWP with the ID specified by wait_for is a
detached LWP.
ESRCH No LWP with the ID specified by wait_for can be found
in the current process.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Obsolete |
|_____________________________|_____________________________|
| MT-Level | Async-Signal-Safe |
|_____________________________|_____________________________|
SEE ALSO
_lwp_create(2), _lwp_detach(2), _lwp_exit(2), attributes(5)
NOTES
The _lwp_wait() function is obsolete and will be removed in
a future release.
Man(1) output converted with
man2html