8158 Want named threads API
[unleashed.git] / usr / src / man / man3c / pthread_getname_np.3c
blob7404a4abfef1d234391c32b57845940b08594807
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 2018 Joyent, Inc.
13 .\"
14 .Dd "August 22, 2018"
15 .Dt PTHREAD_GETNAME_NP 3C
16 .Os
17 .Sh NAME
18 .Nm pthread_getname_np ,
19 .Nm pthread_setname_np
20 .Nd get or set the name of a thread
21 .Sh SYNOPSIS
22 .In pthread.h
24 .Ft int
25 .Fo pthread_getname_np
26 .Fa "pthread_t tid"
27 .Fa "char *name"
28 .Fa "size_t len"
29 .Fc
31 .Ft int
32 .Fo pthread_setname_np
33 .Fa "pthread_t tid"
34 .Fa "const char *name"
35 .Fc
37 .Sh DESCRIPTION
38 The
39 .Fn pthread_getname_np
40 and
41 .Fn pthread_setname_np
42 functions, respectively, get and set the names of the thread whose id is given
43 by the
44 .Fa tid
45 parameter.
46 For
47 .Fn pthread_getname_np ,
48 .Fa len
49 indicates the size of
50 .Fa name .
51 .Pp
52 Thread names are limited to
53 .Dv PTHREAD_MAX_NAMELEN_NP
54 including the terminating NUL.
55 They may only contain printable ASCII characters.
56 .Pp
57 To clear a thread name, call
58 .Fn pthread_setname_np
59 with
60 .Sy NULL .
61 .Pp
62 Unlike some other systems, threads do not inherit the process name by default.
63 .Sh RETURN VALUES
64 Upon successful completion, the
65 .Fn pthread_getname_np
66 and
67 .Fn pthread_setname_np
68 functions return
69 .Sy 0 .
70 Otherwise, an error number is returned to indicate the error.
71 If the thread identified by
72 .Fa tid
73 does not have a name set,
74 .Fa pthread_getname_np
75 will be set to an empty string (length = 0).
76 .Sh ERRORS
77 On failure, the contents of the buffer are undefined.
78 Errors from
79 .Xr open 2 ,
80 .Xr read 2 ,
82 .Xr write 2
83 are possible.
84 In addition, the
85 .Fn pthread_getname_np
86 function will fail with:
87 .Bl -tag -width Er
88 .It Er EINVAL
89 The
90 .Fa name
91 argument is
92 .Sy NULL .
93 .It Er ERANGE
94 The size of
95 .Fa name
96 as given by
97 .Fa len
98 was not large enough to contain the name of the thread.
99 .It Er ESRCH
100 The thread
101 .Fa tid
102 was not found.
106 .Fn pthread_setname_np
107 function will fail with:
108 .Bl -tag -width Er
109 .It Er ERANGE
110 The length of
111 .Fa name
112 exceeds the maximum allowed size.
113 .It Er ESRCH
114 The thread
115 .Fa tid
116 was not found.
118 .Sh INTERFACE STABILITY
119 .Sy Uncommitted
120 .Sh MT-LEVEL
121 .Sy MT-Safe
122 .Sh SEE ALSO
123 .Xr pthread_attr_getname_np 3c ,
124 .Xr pthread_create 3c