1.\" Copyright (c) 2003 Alexey Zelkin <phantom@FreeBSD.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.Dd October 12, 2021
26.Dt PTHREAD_SET_NAME_NP 3
27.Os
28.Sh NAME
29.Nm pthread_get_name_np ,
30.Nm pthread_getname_np ,
31.Nm pthread_set_name_np ,
32.Nm pthread_setname_np
33.Nd set and retrieve the thread name
34.Sh LIBRARY
35.Lb libpthread
36.Sh SYNOPSIS
37.In pthread_np.h
38.Ft void
39.Fn pthread_get_name_np "pthread_t thread" "char *name" "size_t len"
40.Ft int
41.Fn pthread_getname_np "pthread_t thread" "char *name" "size_t len"
42.Ft void
43.Fn pthread_set_name_np "pthread_t thread" "const char *name"
44.Ft int
45.Fn pthread_setname_np "pthread_t thread" "const char *name"
46.Sh DESCRIPTION
47The
48.Fn pthread_set_name_np
49and
50.Fn pthread_setname_np
51functions apply a copy of the given
52.Fa name
53to the given
54.Fa thread .
55.Pp
56The
57.Fn pthread_get_name_np
58and
59.Fn pthread_getname_np
60functions retrieve the
61.Fa name
62associated with
63.Fa thread .
64If
65.Fn pthread_set_name_np
66was not previously called for
67.Fa thread ,
68the buffer pointed to by
69.Fa name
70will be empty.
71.Sh ERRORS
72The
73.Nm pthread_getname_np
74and
75.Nm pthread_setname_np
76will fail if
77.Bl -tag -width Er
78.It Bq Er ESRCH
79No thread could be found in the current process corresponding to that
80specified by the given thread ID
81.Fa thread .
82.El
83.Pp
84Because of the debugging nature of
85.Nm pthread_get_name_np
86and
87.Nm pthread_set_name_np
88functions, all errors that may
89appear inside are silently ignored.
90.Sh SEE ALSO
91.Xr thr_set_name 2 ,
92.Xr pthread_np 3
93.Sh STANDARDS
94.Fn pthread_set_name_np
95and
96.Fn pthread_get_name_np
97are non-standard extensions.
98.Fn pthread_setname_np
99and
100.Fn pthread_getname_np
101are also non-standard, but are implemented by larger number of operating
102systems so they are in fact more portable.
103.Sh AUTHORS
104This manual page was written by
105.An Alexey Zelkin Aq Mt phantom@FreeBSD.org
106and
107.An Yuri Pankov Aq Mt yuripv@yuripv.net .
108