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)