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.\" $FreeBSD: src/share/man/man3/pthread_set_name_np.3,v 1.6 2007/10/22 10:08:01 ru Exp $
26.\"
27.Dd March 8, 2021
28.Dt PTHREAD_SET_NAME_NP 3
29.Os
30.Sh NAME
31.Nm pthread_set_name_np ,
32.Nm pthread_setname_np ,
33.Nm pthread_get_name_np ,
34.Nm pthread_getname_np
35.Nd set and get the thread name
36.Sh LIBRARY
37.Lb libpthread
38.Sh SYNOPSIS
39.In pthread.h
40.In pthread_np.h
41.Ft void
42.Fn pthread_set_name_np "pthread_t tid" "const char *name"
43.Ft int
44.Fn pthread_setname_np "pthread_t tid" "const char *name"
45.Ft void
46.Fn pthread_get_name_np "pthread_t tid" "char *name" "size_t len"
47.Ft int
48.Fn pthread_getname_np "pthread_t tid" "char *name" "size_t len"
49.Sh DESCRIPTION
50The
51.Fn pthread_set_name_np
52and
53.Fn pthread_setname_np
54functions set the internal name of the thread specified by the
55.Fa tid
56argument to the string value specified by the
57.Fa name
58argument.
59.Pp
60The
61.Fn pthread_get_name_np
62and
63.Fn pthread_getname_np
64functions get the internal name of the thread specified by the
65.Fa tid
66argument and store it in the buffer.
67If the thread does not exist, the buffer is written as an empty line.
68.Sh RETURN VALUES
69Upon successful completion,
70.Fn pthread_getname_np
71and
72.Fn pthread_setname_np
73will return 0.
74Otherwise, an error is returned.
75.Sh ERRORS
76The
77.Fn pthread_getname_np
78and
79.Fn pthread_setname_np
80functions will fail if
81.Bl -tag -width Er
82.It Bq Er EFAULT
83The
84.Fa name
85parameter is outside the process's allocated address space.
86.It Bq Er EINVAL
87The
88.Fa tid
89argument specifies an invalid thread.
90.It Bq Er ESRCH
91No thread could be found in the current process corresponding to that
92specified by the given thread ID
93.Fa tid .
94.El
95.Pp
96Because of the debugging nature of the
97.Nm pthread_get_name_np
98and
99.Nm pthread_set_name_np
100functions, all errors that may appear inside are silently ignored.
101However, errno may still be set.
102.Sh SEE ALSO
103.Xr lwp_setname 2
104.Sh STANDARDS
105The
106.Fn pthread_set_name_np
107and
108.Fn pthread_get_name_np
109functions are non-standard extensions.
110While also non-standard,
111.Fn pthread_setname_np
112and
113.Fn pthread_getname_np
114are implemented by a larger number of operating
115systems so they are in fact more portable.
116.Sh AUTHORS
117This manual page was written by
118.An Alexey Zelkin Aq Mt phantom@FreeBSD.org .
119