PLWP_ITER(3PROC) Process Control Library Functions PLWP_ITER(3PROC)

Plwp_iter, Plwp_iter_all
iterate over threads

Process Control Library (libproc, -lproc)

#include <libproc.h>
int
Plwp_iter(struct ps_prochandle *P, proc_lwp_f *func, void *data);
int
Plwp_iter_all(struct ps_prochandle *P, proc_lwp_all_f *func, void *data);

The Plwp_iter() and Plwp_iter_all() functions iterates over threads in the given process handle P. The Plwp_iter() function iterates over all active threads, where as the Plwp_iter_all() function iterates over both active threads and zombie threads -- threads waiting to be reaped.
For each thread, the callback function func is called with the pointer to the private data argument, data, and the thread's lwpstatus_t structure. In the case of the Plwp_iter_all() function, the thread's lwpsinfo_t is also included.
The return value of func controls whether or not iteration continues. If func returns 0, then both functions will continue iteration. However, if func returns non-zero, then iteration will halt and that value will be used as the return value of the Plwp_iter() and Plwp_iter_all() functions. Because both functions return -1 on internal failure, it is recommended that the callback function does not return -1 to indicate an error so that the caller may distinguish between the failure of the callback function and the failure of the Plwp_iter() and Plwp_iter_all() functions.

Upon successful completion, the Plwp_iter() and Plwp_iter_all() functions return 0. Otherwise, if there was an internal error or there is no thread data, then -1 is returned. Otherwise, if the callback function func returns non-zero, then its return value will be returned instead.

Uncommitted

See LOCKING in libproc(3LIB).

libproc(3LIB)
May 11, 2016 illumos