8158 Want named threads API
[unleashed.git] / usr / src / man / man3proc / Prelease.3proc
blob61fe2821623480e0ef255739c3eeb2cfc06a6a9b
1 .\"
2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
5 .\" 1.0 of the CDDL.
6 .\"
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source.  A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
10 .\"
11 .\"
12 .\" Copyright 2015 Joyent, Inc.
13 .\"
14 .Dd May 11, 2016
15 .Dt PRELEASE 3PROC
16 .Os
17 .Sh NAME
18 .Nm Prelease ,
19 .Nm Pfree
20 .Nd release a process control handle
21 .Sh LIBRARY
22 .Lb libproc
23 .Sh SYNOPSIS
24 .In libproc.h
25 .Ft void
26 .Fo Prelease
27 .Fa "struct ps_prochandle *P"
28 .Fa "int flags"
29 .Fc
30 .Ft void
31 .Fo Pfree
32 .Fa "struct ps_prochandle *P"
33 .Fc
34 .Sh DESCRIPTION
35 The
36 .Fn Prelease
37 function is used to release all of the resources associated with a
38 .Nm libproc
39 handle.
40 It is suitable for handles to core files, created processes, and grabbed
41 processes from the
42 .Xr Pgrab_core 3PROC ,
43 .Xr Pcreate 3PROC ,
44 .Xr Pgrab 3PROC ,
45 and
46 .Xr Pgrab_file 3PROC
47 functions.
48 .Pp
49 After calling the
50 .Fn Prelease
51 function, all data that was returned via the handle will no longer be
52 valid.
53 For example, the data from calls to
54 .Xr Pctlfd 3PROC ,
55 .Xr Pgetauxvec 3PROC ,
56 .Xr Pstatus 3PROC ,
57 and others.
58 .Pp
59 The behavior of the released process is controlled by the
60 .Fa flags
61 argument.
62 By default, if no flags are passed, then the process represented by
63 .Fa P
64 will be set running if it was created by
65 .Xr Pcreate 3PROC
66 or if it was not originally stopped or set to stop in /proc.
67 The following values may be passed in to the
68 .Fa flags
69 argument.
70 Multiple flags should be be combined with a bitwise-inclusive-OR.
71 .Bl -tag -width Er -offset indent
72 .It Dv PRELEASE_CLEAR
73 When releasing the process, clear all tracing flags that are set on the
74 process.
75 .It Dv PRELEASE_RETAIN
76 When releasing the process, retain all tracing flags that are currently
77 active on the process.
78 .It Dv PRELEASE_HANG
79 Leave the process stopped.
80 It will not resume execution unless it is explicitly enabled with
81 .Xr prun 1
82 or another process explicitly enables it.
83 .It Dv PRELEASE_KILL
84 Release the process and terminate it with
85 .Dv SIGKILL .
86 This option takes precedence over all other values that may be passed in to
87 .Fa flags .
88 .El
89 .Pp
90 The
91 .Fn Pfree
92 function is similar to the
93 .Fn Prelease
94 function in that it frees the resources associated with the process
95 handle
96 .Fa P ;
97 however, unlike the
98 .Fn Prelease
99 function, it does not handle any logic to change or set the grabbed processes
100 state.
101 In general, prefer
102 .Fn Prelease
104 .Fn Pfree .
105 .Sh INTERFACE STABILITY
106 .Sy Uncommitted
107 .Sh MT-LEVEL
109 .Sy LOCKING
111 .Xr libproc 3LIB .
112 .Sh SEE ALSO
113 .Xr prun 1 ,
114 .Xr libproc 3LIB ,
115 .Xr Pcreate 3PROC ,
116 .Xr Pgrab 3PROC ,
117 .Xr Pgrab_core 3PROC ,
118 .Xr proc 4