_LWP_WAIT(2) | System Calls Manual | _LWP_WAIT(2)

# NAME

`_lwp_wait` — wait for light-weight process termination

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <lwp.h>`

int
`_lwp_wait`(lwpid_t wlwp, lwpid_t *rlwp);

# DESCRIPTION

`_lwp_wait`() suspends execution of the calling LWP until the LWP specified by wlwp terminates. The specified LWP must not be detached. If wlwp is 0, then `_lwp_wait`() waits for any undetached LWP in the current process.

If rlwp is not `NULL`, then it points to the location where the LWP ID of the exited LWP is stored.

# RETURN VALUES

The `_lwp_wait`() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

# ERRORS

`_lwp_wait`() will fail if:

[`ESRCH`]
  No LWP can be found in the current process corresponding to that specified by wlwp.
[`EDEADLK`]
  The calling LWP is the only LWP in the process.
[`EDEADLK`]
  The LWP ID specified by wlwp is the LWP ID of the calling LWP.
[`EINVAL`]
  The LWP specified by wlwp is detached.
[`EINTR`]
  `_lwp_wait`() was interrupted by a caught signal, or the signal did not have the `SA_RESTART` flag set.

# SEE ALSO

_lwp_create(2), _lwp_exit(2)

# HISTORY

The `_lwp_wait`() system call first appeared in NetBSD 2.0.

December 4, 2022 | NetBSD 11.0