| 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.
See LOCKING in libproc(3LIB).
| May 11, 2016 | OmniOS |