1*43051d27SRobert Mustacchi.\" 2*43051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the 3*43051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 4*43051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version 5*43051d27SRobert Mustacchi.\" 1.0 of the CDDL. 6*43051d27SRobert Mustacchi.\" 7*43051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 8*43051d27SRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 9*43051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 10*43051d27SRobert Mustacchi.\" 11*43051d27SRobert Mustacchi.\" 12*43051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc. 13*43051d27SRobert Mustacchi.\" 14*43051d27SRobert Mustacchi.Dd May 11, 2016 15*43051d27SRobert Mustacchi.Dt PLWP_ITER 3PROC 16*43051d27SRobert Mustacchi.Os 17*43051d27SRobert Mustacchi.Sh NAME 18*43051d27SRobert Mustacchi.Nm Plwp_iter , 19*43051d27SRobert Mustacchi.Nm Plwp_iter_all 20*43051d27SRobert Mustacchi.Nd iterate over threads 21*43051d27SRobert Mustacchi.Sh SYNOPSIS 22*43051d27SRobert Mustacchi.Lb libproc 23*43051d27SRobert Mustacchi.In libproc.h 24*43051d27SRobert Mustacchi.Ft int 25*43051d27SRobert Mustacchi.Fo Plwp_iter 26*43051d27SRobert Mustacchi.Fa "struct ps_prochandle *P" 27*43051d27SRobert Mustacchi.Fa "proc_lwp_f *func", 28*43051d27SRobert Mustacchi.Fa "void *data" 29*43051d27SRobert Mustacchi.Fc 30*43051d27SRobert Mustacchi.Ft int 31*43051d27SRobert Mustacchi.Fo Plwp_iter_all 32*43051d27SRobert Mustacchi.Fa "struct ps_prochandle *P" 33*43051d27SRobert Mustacchi.Fa "proc_lwp_all_f *func" 34*43051d27SRobert Mustacchi.Fa "void *data" 35*43051d27SRobert Mustacchi.Fc 36*43051d27SRobert Mustacchi.Sh DESCRIPTION 37*43051d27SRobert MustacchiThe 38*43051d27SRobert Mustacchi.Fn Plwp_iter 39*43051d27SRobert Mustacchiand 40*43051d27SRobert Mustacchi.Fn Plwp_iter_all 41*43051d27SRobert Mustacchifunctions iterates over threads in the given process handle 42*43051d27SRobert Mustacchi.Fa P . 43*43051d27SRobert MustacchiThe 44*43051d27SRobert Mustacchi.Fn Plwp_iter 45*43051d27SRobert Mustacchifunction iterates over all active threads, where as the 46*43051d27SRobert Mustacchi.Fn Plwp_iter_all 47*43051d27SRobert Mustacchifunction iterates over both active threads and zombie threads -- threads 48*43051d27SRobert Mustacchiwaiting to be reaped. 49*43051d27SRobert Mustacchi.Pp 50*43051d27SRobert MustacchiFor each thread, the callback function 51*43051d27SRobert Mustacchi.Fa func 52*43051d27SRobert Mustacchiis called with the pointer to the private data argument, 53*43051d27SRobert Mustacchi.Fa data , 54*43051d27SRobert Mustacchiand the thread's 55*43051d27SRobert Mustacchi.Sy lwpstatus_t 56*43051d27SRobert Mustacchistructure. In the case of the 57*43051d27SRobert Mustacchi.Fn Plwp_iter_all 58*43051d27SRobert Mustacchifunction, the thread's 59*43051d27SRobert Mustacchi.Sy lwpsinfo_t 60*43051d27SRobert Mustacchiis also included. 61*43051d27SRobert Mustacchi.Pp 62*43051d27SRobert MustacchiThe return value of 63*43051d27SRobert Mustacchi.Fa func 64*43051d27SRobert Mustacchicontrols whether or not iteration continues. If 65*43051d27SRobert Mustacchi.Fa func 66*43051d27SRobert Mustacchireturns 67*43051d27SRobert Mustacchi.Sy 0 , 68*43051d27SRobert Mustacchithen both functions will continue iteration. However, if 69*43051d27SRobert Mustacchi.Fa func 70*43051d27SRobert Mustacchireturns non-zero, then iteration will halt and that value will be used 71*43051d27SRobert Mustacchias the return value of the 72*43051d27SRobert Mustacchi.Fn Plwp_iter 73*43051d27SRobert Mustacchiand 74*43051d27SRobert Mustacchi.Fn Plwp_iter_all 75*43051d27SRobert Mustacchifunctions. Because both functions return 76*43051d27SRobert Mustacchi.Sy -1 77*43051d27SRobert Mustacchion internal failure, it is recommended that the callback function does 78*43051d27SRobert Mustacchinot return 79*43051d27SRobert Mustacchi.Sy -1 80*43051d27SRobert Mustacchito indicate an error so that the caller may distinguish between the 81*43051d27SRobert Mustacchifailure of the callback function and the failure of the 82*43051d27SRobert Mustacchi.Fn Plwp_iter 83*43051d27SRobert Mustacchiand 84*43051d27SRobert Mustacchi.Fn Plwp_iter_all 85*43051d27SRobert Mustacchifunctions. 86*43051d27SRobert Mustacchi.Sh RETURN VALUES 87*43051d27SRobert MustacchiUpon successful completion, the 88*43051d27SRobert Mustacchi.Fn Plwp_iter 89*43051d27SRobert Mustacchiand 90*43051d27SRobert Mustacchi.Fn Plwp_iter_all 91*43051d27SRobert Mustacchifunctions return 92*43051d27SRobert Mustacchi.Sy 0 . 93*43051d27SRobert MustacchiOtherwise, if there was an internal error or there is no thread data, then 94*43051d27SRobert Mustacchi.Sy -1 95*43051d27SRobert Mustacchiis returned. Otherwise, if the callback function 96*43051d27SRobert Mustacchi.Fa func 97*43051d27SRobert Mustacchireturns non-zero, then its return value will be returned instead. 98*43051d27SRobert Mustacchi.Sh INTERFACE STABILITY 99*43051d27SRobert Mustacchi.Sy Uncommitted 100*43051d27SRobert Mustacchi.Sh MT-LEVEL 101*43051d27SRobert MustacchiSee 102*43051d27SRobert Mustacchi.Sy LOCKING 103*43051d27SRobert Mustacchiin 104*43051d27SRobert Mustacchi.Xr libproc 3LIB . 105*43051d27SRobert Mustacchi.Sh SEE ALSO 106*43051d27SRobert Mustacchi.Xr libproc 3LIB 107