xref: /illumos-gate/usr/src/man/man3proc/Plwp_iter.3proc (revision 72d3dbb9ab4481606cb93caca98ba3b3a8eb6ce2)
143051d27SRobert Mustacchi.\"
243051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
343051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
443051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
543051d27SRobert Mustacchi.\" 1.0 of the CDDL.
643051d27SRobert Mustacchi.\"
743051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
843051d27SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
943051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
1043051d27SRobert Mustacchi.\"
1143051d27SRobert Mustacchi.\"
1243051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc.
1343051d27SRobert Mustacchi.\"
1443051d27SRobert Mustacchi.Dd May 11, 2016
1543051d27SRobert Mustacchi.Dt PLWP_ITER 3PROC
1643051d27SRobert Mustacchi.Os
1743051d27SRobert Mustacchi.Sh NAME
1843051d27SRobert Mustacchi.Nm Plwp_iter ,
1943051d27SRobert Mustacchi.Nm Plwp_iter_all
2043051d27SRobert Mustacchi.Nd iterate over threads
2143051d27SRobert Mustacchi.Sh SYNOPSIS
2243051d27SRobert Mustacchi.Lb libproc
2343051d27SRobert Mustacchi.In libproc.h
2443051d27SRobert Mustacchi.Ft int
2543051d27SRobert Mustacchi.Fo Plwp_iter
2643051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
2743051d27SRobert Mustacchi.Fa "proc_lwp_f *func",
2843051d27SRobert Mustacchi.Fa "void *data"
2943051d27SRobert Mustacchi.Fc
3043051d27SRobert Mustacchi.Ft int
3143051d27SRobert Mustacchi.Fo Plwp_iter_all
3243051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3343051d27SRobert Mustacchi.Fa "proc_lwp_all_f *func"
3443051d27SRobert Mustacchi.Fa "void *data"
3543051d27SRobert Mustacchi.Fc
3643051d27SRobert Mustacchi.Sh DESCRIPTION
3743051d27SRobert MustacchiThe
3843051d27SRobert Mustacchi.Fn Plwp_iter
3943051d27SRobert Mustacchiand
4043051d27SRobert Mustacchi.Fn Plwp_iter_all
4143051d27SRobert Mustacchifunctions iterates over threads in the given process handle
4243051d27SRobert Mustacchi.Fa P .
4343051d27SRobert MustacchiThe
4443051d27SRobert Mustacchi.Fn Plwp_iter
4543051d27SRobert Mustacchifunction iterates over all active threads, where as the
4643051d27SRobert Mustacchi.Fn Plwp_iter_all
4743051d27SRobert Mustacchifunction iterates over both active threads and zombie threads -- threads
4843051d27SRobert Mustacchiwaiting to be reaped.
4943051d27SRobert Mustacchi.Pp
5043051d27SRobert MustacchiFor each thread, the callback function
5143051d27SRobert Mustacchi.Fa func
5243051d27SRobert Mustacchiis called with the pointer to the private data argument,
5343051d27SRobert Mustacchi.Fa data ,
5443051d27SRobert Mustacchiand the thread's
5543051d27SRobert Mustacchi.Sy lwpstatus_t
56*72d3dbb9SYuri Pankovstructure.
57*72d3dbb9SYuri PankovIn the case of the
5843051d27SRobert Mustacchi.Fn Plwp_iter_all
5943051d27SRobert Mustacchifunction, the thread's
6043051d27SRobert Mustacchi.Sy lwpsinfo_t
6143051d27SRobert Mustacchiis also included.
6243051d27SRobert Mustacchi.Pp
6343051d27SRobert MustacchiThe return value of
6443051d27SRobert Mustacchi.Fa func
65*72d3dbb9SYuri Pankovcontrols whether or not iteration continues.
66*72d3dbb9SYuri PankovIf
6743051d27SRobert Mustacchi.Fa func
6843051d27SRobert Mustacchireturns
6943051d27SRobert Mustacchi.Sy 0 ,
70*72d3dbb9SYuri Pankovthen both functions will continue iteration.
71*72d3dbb9SYuri PankovHowever, if
7243051d27SRobert Mustacchi.Fa func
7343051d27SRobert Mustacchireturns non-zero, then iteration will halt and that value will be used
7443051d27SRobert Mustacchias the return value of the
7543051d27SRobert Mustacchi.Fn Plwp_iter
7643051d27SRobert Mustacchiand
7743051d27SRobert Mustacchi.Fn Plwp_iter_all
78*72d3dbb9SYuri Pankovfunctions.
79*72d3dbb9SYuri PankovBecause both functions return
8043051d27SRobert Mustacchi.Sy -1
8143051d27SRobert Mustacchion internal failure, it is recommended that the callback function does
8243051d27SRobert Mustacchinot return
8343051d27SRobert Mustacchi.Sy -1
8443051d27SRobert Mustacchito indicate an error so that the caller may distinguish between the
8543051d27SRobert Mustacchifailure of the callback function and the failure of the
8643051d27SRobert Mustacchi.Fn Plwp_iter
8743051d27SRobert Mustacchiand
8843051d27SRobert Mustacchi.Fn Plwp_iter_all
8943051d27SRobert Mustacchifunctions.
9043051d27SRobert Mustacchi.Sh RETURN VALUES
9143051d27SRobert MustacchiUpon successful completion, the
9243051d27SRobert Mustacchi.Fn Plwp_iter
9343051d27SRobert Mustacchiand
9443051d27SRobert Mustacchi.Fn Plwp_iter_all
9543051d27SRobert Mustacchifunctions return
9643051d27SRobert Mustacchi.Sy 0 .
9743051d27SRobert MustacchiOtherwise, if there was an internal error or there is no thread data, then
9843051d27SRobert Mustacchi.Sy -1
99*72d3dbb9SYuri Pankovis returned.
100*72d3dbb9SYuri PankovOtherwise, if the callback function
10143051d27SRobert Mustacchi.Fa func
10243051d27SRobert Mustacchireturns non-zero, then its return value will be returned instead.
10343051d27SRobert Mustacchi.Sh INTERFACE STABILITY
10443051d27SRobert Mustacchi.Sy Uncommitted
10543051d27SRobert Mustacchi.Sh MT-LEVEL
10643051d27SRobert MustacchiSee
10743051d27SRobert Mustacchi.Sy LOCKING
10843051d27SRobert Mustacchiin
10943051d27SRobert Mustacchi.Xr libproc 3LIB .
11043051d27SRobert Mustacchi.Sh SEE ALSO
11143051d27SRobert Mustacchi.Xr libproc 3LIB
112