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 |