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

Plwp_iter, Plwp_iter_alliterate over threads

Process Control Library (libproc, -lproc)

#include <libproc.h>

Plwp_iter(struct ps_prochandle *P, proc_lwp_f *func, void *data);

Plwp_iter_all(struct ps_prochandle *P, proc_lwp_all_f *func, void *data);

The () 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 structure. In the case of the () function, the thread's 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 () 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.

See in libproc(3LIB).


May 11, 2016 OmniOS