xref: /freebsd/share/man/man3/pthread_mutexattr.3 (revision dab59af3bcc7cb7ba01569d3044894b3e860ad56)
1c5e7e03aSRuslan Ermilov.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
2*dab59af3SLi-Wen Hsu.\" Copyright (c) 2021 The FreeBSD Foundation
34c089f4dSJason Evans.\" All rights reserved.
44c089f4dSJason Evans.\"
5be6116fdSKonstantin Belousov.\" Part of this documentation was written by
6be6116fdSKonstantin Belousov.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
7be6116fdSKonstantin Belousov.\" from the FreeBSD Foundation.
8be6116fdSKonstantin Belousov.\"
94c089f4dSJason Evans.\" Redistribution and use in source and binary forms, with or without
104c089f4dSJason Evans.\" modification, are permitted provided that the following conditions
114c089f4dSJason Evans.\" are met:
124c089f4dSJason Evans.\" 1. Redistributions of source code must retain the above copyright
134c089f4dSJason Evans.\"    notice(s), this list of conditions and the following disclaimer as
144c089f4dSJason Evans.\"    the first lines of this file unmodified other than the possible
154c089f4dSJason Evans.\"    addition of one or more copyright notices.
164c089f4dSJason Evans.\" 2. Redistributions in binary form must reproduce the above copyright
174c089f4dSJason Evans.\"    notice(s), this list of conditions and the following disclaimer in
184c089f4dSJason Evans.\"    the documentation and/or other materials provided with the
194c089f4dSJason Evans.\"    distribution.
204c089f4dSJason Evans.\"
214c089f4dSJason Evans.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
224c089f4dSJason Evans.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
234c089f4dSJason Evans.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
244c089f4dSJason Evans.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
254c089f4dSJason Evans.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
264c089f4dSJason Evans.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
274c089f4dSJason Evans.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
284c089f4dSJason Evans.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
294c089f4dSJason Evans.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
304c089f4dSJason Evans.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
314c089f4dSJason Evans.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
324f03a2caSKonstantin Belousov.Dd October 27, 2023
334c089f4dSJason Evans.Dt PTHREAD_MUTEXATTR 3
344c089f4dSJason Evans.Os
354c089f4dSJason Evans.Sh NAME
362a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_init ,
372a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_destroy ,
382a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_setprioceiling ,
392a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_getprioceiling ,
402a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_setprotocol ,
412a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_getprotocol ,
420a6e5fc2SKonstantin Belousov.Nm pthread_mutexattr_setpshared ,
430a6e5fc2SKonstantin Belousov.Nm pthread_mutexattr_getpshared ,
442a339d9eSKonstantin Belousov.Nm pthread_mutexattr_setrobust ,
452a339d9eSKonstantin Belousov.Nm pthread_mutexattr_getrobust ,
462a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_settype ,
472a53c5ecSAlexey Zelkin.Nm pthread_mutexattr_gettype
484c089f4dSJason Evans.Nd mutex attribute operations
494c089f4dSJason Evans.Sh LIBRARY
50ec7452f1SRuslan Ermilov.Lb libpthread
514c089f4dSJason Evans.Sh SYNOPSIS
5232eef9aeSRuslan Ermilov.In pthread.h
534c089f4dSJason Evans.Ft int
544c089f4dSJason Evans.Fn pthread_mutexattr_init "pthread_mutexattr_t *attr"
554c089f4dSJason Evans.Ft int
564c089f4dSJason Evans.Fn pthread_mutexattr_destroy "pthread_mutexattr_t *attr"
574c089f4dSJason Evans.Ft int
589f3b6cdbSKonstantin Belousov.Fo pthread_mutexattr_setprioceiling
599f3b6cdbSKonstantin Belousov.Fa "pthread_mutexattr_t *attr" "int prioceiling"
609f3b6cdbSKonstantin Belousov.Fc
614c089f4dSJason Evans.Ft int
629f3b6cdbSKonstantin Belousov.Fo pthread_mutexattr_getprioceiling
639f3b6cdbSKonstantin Belousov.Fa "const pthread_mutexattr_t *attr" "int *prioceiling"
649f3b6cdbSKonstantin Belousov.Fc
654c089f4dSJason Evans.Ft int
664c089f4dSJason Evans.Fn pthread_mutexattr_setprotocol "pthread_mutexattr_t *attr" "int protocol"
674c089f4dSJason Evans.Ft int
689f3b6cdbSKonstantin Belousov.Fo pthread_mutexattr_getprotocol
699f3b6cdbSKonstantin Belousov.Fa "const pthread_mutexattr_t *restrict attr" "int *restrict protocol"
709f3b6cdbSKonstantin Belousov.Fc
714c089f4dSJason Evans.Ft int
720a6e5fc2SKonstantin Belousov.Fo pthread_mutexattr_setpshared
730a6e5fc2SKonstantin Belousov.Fa "pthread_mutexattr_t *attr" "int shared"
740a6e5fc2SKonstantin Belousov.Fc
750a6e5fc2SKonstantin Belousov.Ft int
760a6e5fc2SKonstantin Belousov.Fo pthread_mutexattr_getpshared
770a6e5fc2SKonstantin Belousov.Fa "const pthread_mutexattr_t *attr" "int *shared"
780a6e5fc2SKonstantin Belousov.Fc
790a6e5fc2SKonstantin Belousov.Ft int
802a339d9eSKonstantin Belousov.Fn pthread_mutexattr_setrobust "pthread_mutexattr_t *attr" "int robust"
812a339d9eSKonstantin Belousov.Ft int
822a339d9eSKonstantin Belousov.Fn pthread_mutexattr_getrobust "pthread_mutexattr_t *attr" "int *robust"
832a339d9eSKonstantin Belousov.Ft int
844c089f4dSJason Evans.Fn pthread_mutexattr_settype "pthread_mutexattr_t *attr" "int type"
854c089f4dSJason Evans.Ft int
869f3b6cdbSKonstantin Belousov.Fo pthread_mutexattr_gettype
879f3b6cdbSKonstantin Belousov.Fa "const pthread_mutexattr_t *restrict attr" "int *restrict type"
889f3b6cdbSKonstantin Belousov.Fc
894c089f4dSJason Evans.Sh DESCRIPTION
904c089f4dSJason EvansMutex attributes are used to specify parameters to
914c089f4dSJason Evans.Fn pthread_mutex_init .
924c089f4dSJason EvansOne attribute object can be used in multiple calls to
934c089f4dSJason Evans.Fn pthread_mutex_init ,
944c089f4dSJason Evanswith or without modifications between calls.
952a53c5ecSAlexey Zelkin.Pp
964c089f4dSJason EvansThe
974c089f4dSJason Evans.Fn pthread_mutexattr_init
984c089f4dSJason Evansfunction initializes
994c089f4dSJason Evans.Fa attr
1004c089f4dSJason Evanswith all the default mutex attributes.
1012a53c5ecSAlexey Zelkin.Pp
1024c089f4dSJason EvansThe
1034c089f4dSJason Evans.Fn pthread_mutexattr_destroy
1044c089f4dSJason Evansfunction destroys
1054c089f4dSJason Evans.Fa attr .
1062a53c5ecSAlexey Zelkin.Pp
1074c089f4dSJason EvansThe
108be6116fdSKonstantin Belousov.Fn pthread_mutexattr_setprioceiling
109be6116fdSKonstantin Belousovfunction sets the priority ceiling for the mutex, used
110be6116fdSKonstantin Belousovby threads executed under the
111be6116fdSKonstantin Belousov.Dv PTHREAD_PRIO_PROTECT
112be6116fdSKonstantin Belousovprotocol.
113be6116fdSKonstantin Belousov.Pp
114be6116fdSKonstantin BelousovThe
115be6116fdSKonstantin Belousov.Fn pthread_mutexattr_setprotocol
116be6116fdSKonstantin Belousovfunction specifies the protocol to be followed in utilizing mutexes.
117be6116fdSKonstantin BelousovThe
118be6116fdSKonstantin Belousov.Fa protocol
119be6116fdSKonstantin Belousovargument can take one of the following values:
120be6116fdSKonstantin Belousov.Bl -tag -width PTHREAD_PRIO_PROTECT
121be6116fdSKonstantin Belousov.It PTHREAD_PRIO_NONE
122be6116fdSKonstantin BelousovPriority and scheduling of the thread owning this mutex is not
123be6116fdSKonstantin Belousovaffected by its mutex ownership.
124be6116fdSKonstantin Belousov.It PTHREAD_PRIO_INHERIT
125be6116fdSKonstantin BelousovRequest priority-inheritance protocol, where the thread owning the mutex
126be6116fdSKonstantin Belousovis executed at the highest priority among priorities of all threads waiting
127be6116fdSKonstantin Belousovon any mutex owned by this thread.
128be6116fdSKonstantin Belousov.It PTHREAD_PRIO_PROTECT
129be6116fdSKonstantin BelousovRequest priority-inheritance protocol, where the thread owning the mutex
130be6116fdSKonstantin Belousovis executed at highest priority among priorities or priority ceilings of
131be6116fdSKonstantin Belousovall threads waiting on any mutex owned by this thread.
132be6116fdSKonstantin Belousov.El
133be6116fdSKonstantin Belousov.Pp
134be6116fdSKonstantin BelousovThe
1352152c4e2SKonstantin Belousov.Fn pthread_mutexattr_setpshared
1362152c4e2SKonstantin Belousovfunction sets the process-shared attribute of
1372152c4e2SKonstantin Belousov.Fa attr
1382152c4e2SKonstantin Belousovto the value specified in
1392152c4e2SKonstantin Belousov.Fa pshared .
1402152c4e2SKonstantin BelousovThe argument
1412152c4e2SKonstantin Belousov.Fa pshared
1422152c4e2SKonstantin Belousovmay have one of the following values:
1432152c4e2SKonstantin Belousov.Bl -tag -width ".Dv PTHREAD_PROCESS_PRIVATE"
1442152c4e2SKonstantin Belousov.It Dv PTHREAD_PROCESS_PRIVATE
1452152c4e2SKonstantin BelousovThe mutex may only be used by threads in the same process as the one
1462152c4e2SKonstantin Belousovthat created the object.
1472152c4e2SKonstantin Belousov.It Dv PTHREAD_PROCESS_SHARED
1482152c4e2SKonstantin BelousovThe mutex may be used by
1492152c4e2SKonstantin Belousovthreads in processes other than the one that created the object,
1502152c4e2SKonstantin Belousovassuming other processes share access to the memory where the mutex
1512152c4e2SKonstantin Belousovwas allocated.
1522152c4e2SKonstantin Belousov.El
1534f03a2caSKonstantin BelousovSee
1544f03a2caSKonstantin Belousov.Xr libthr 3
1554f03a2caSKonstantin Belousovfor details of the implementation of the shared mutexes,
1564f03a2caSKonstantin Belousovand their limitations.
1572152c4e2SKonstantin Belousov.Pp
1582152c4e2SKonstantin BelousovThe
159be6116fdSKonstantin Belousov.Fn pthread_mutexattr_setrobust
160be6116fdSKonstantin Belousovfunction specifies robustness attribute of the mutex.
161be6116fdSKonstantin BelousovPossible values for the
162be6116fdSKonstantin Belousov.Fa robust
163be6116fdSKonstantin Belousovargument are
164be6116fdSKonstantin Belousov.Bl -tag -width PTHREAD_MUTEX_STALLED
165be6116fdSKonstantin Belousov.It PTHREAD_MUTEX_STALLED
166be6116fdSKonstantin BelousovNo special actions are taken if the thread owning the mutex is terminated
167be6116fdSKonstantin Belousovwithout unlocking the mutex lock.
168be6116fdSKonstantin BelousovThis can lead to deadlocks if no other thread can unlock the mutex.
169be6116fdSKonstantin BelousovThis is the default value.
170be6116fdSKonstantin Belousov.It PTHREAD_MUTEX_ROBUST
171be6116fdSKonstantin BelousovIf the process containing the owning thread of a robust mutex, or owning
172be6116fdSKonstantin Belousovthread, terminates while holding the mutex lock, the next thread that
173be6116fdSKonstantin Belousovacquires the mutex is notified about the termination
174be6116fdSKonstantin Belousovby the return value
175be6116fdSKonstantin Belousov.Ev EOWNERDEAD
176be6116fdSKonstantin Belousovfrom the locking function.
177be6116fdSKonstantin BelousovThen, either
178be6116fdSKonstantin Belousov.Xr pthread_mutex_consistent 3
179be6116fdSKonstantin Belousovcan be used to repair the mutex lock state, or
180be6116fdSKonstantin Belousov.Xr pthread_mutex_unlock 3
181be6116fdSKonstantin Belousovcan unlock the mutex lock but also put it an unusable state,
182be6116fdSKonstantin Belousovwhere all further attempts to acquire it result in the
183be6116fdSKonstantin Belousov.Ev ENOTRECOVERABLE
184be6116fdSKonstantin Belousoverror.
185be6116fdSKonstantin Belousov.El
186be6116fdSKonstantin Belousov.Pp
187be6116fdSKonstantin BelousovThe
188be6116fdSKonstantin Belousov.Fn pthread_mutexattr_settype
189be6116fdSKonstantin Belousovfunction sets the type of the mutex.
190be6116fdSKonstantin BelousovThe type affects the behavior of calls which lock and unlock the mutex.
191be6116fdSKonstantin BelousovThe possible values for the
192be6116fdSKonstantin Belousov.Fa type
193be6116fdSKonstantin Belousovargument are
194be6116fdSKonstantin Belousov.Bl -tag -width PTHREAD_MUTEX_ERRORCHECK
195be6116fdSKonstantin Belousov.It PTHREAD_MUTEX_NORMAL
196be6116fdSKonstantin BelousovBoth recursive locking, and unlocking when the lock is not owned by the current
197be6116fdSKonstantin Belousovthread, cause an error to be returned from the corresponding functions.
198be6116fdSKonstantin BelousovThis matches
199be6116fdSKonstantin Belousov.Dv PTHREAD_MUTEX_ERRORCHECK
200be6116fdSKonstantin Belousovbut somewhat contradicts the behavior mandated by POSIX.
201be6116fdSKonstantin Belousov.It PTHREAD_MUTEX_ERRORCHECK
202be6116fdSKonstantin BelousovBoth recursive locking, and unlocking when the lock is not owned by the current
203be6116fdSKonstantin Belousovthread, cause an error returned from the corresponding functions.
204be6116fdSKonstantin Belousov.It PTHREAD_MUTEX_RECURSIVE
205be6116fdSKonstantin BelousovRecursive locking is allowed.
206be6116fdSKonstantin BelousovAttempt to unlock when current thread is not an owner of the lock causes
207be6116fdSKonstantin Belousovan error to be returned.
208be6116fdSKonstantin Belousov.It PTHREAD_MUTEX_DEFAULT
209be6116fdSKonstantin BelousovThe
210be6116fdSKonstantin Belousov.Fx
211be6116fdSKonstantin Belousovimplementation maps this type to
212be6116fdSKonstantin Belousov.Dv PTHREAD_MUTEX_ERRORCHECK
213be6116fdSKonstantin Belousovtype.
214be6116fdSKonstantin Belousov.El
2152a53c5ecSAlexey Zelkin.Pp
2164c089f4dSJason EvansThe
2174c089f4dSJason Evans.Fn pthread_mutexattr_get*
2184c089f4dSJason Evansfunctions copy the value of the attribute that corresponds to each function name
2194c089f4dSJason Evansto the location pointed to by the second function parameter.
2204c089f4dSJason Evans.Sh RETURN VALUES
2214c089f4dSJason EvansIf successful, these functions return 0.
22257bd0fc6SJens SchweikhardtOtherwise, an error number is returned to indicate the error.
2234c089f4dSJason Evans.Sh ERRORS
2249d09157aSPhilippe CharnierThe
2254c089f4dSJason Evans.Fn pthread_mutexattr_init
2269d09157aSPhilippe Charnierfunction will fail if:
2274c089f4dSJason Evans.Bl -tag -width Er
2284c089f4dSJason Evans.It Bq Er ENOMEM
2294c089f4dSJason EvansOut of memory.
2304c089f4dSJason Evans.El
2312a53c5ecSAlexey Zelkin.Pp
2329d09157aSPhilippe CharnierThe
2334c089f4dSJason Evans.Fn pthread_mutexattr_destroy
2349d09157aSPhilippe Charnierfunction will fail if:
2354c089f4dSJason Evans.Bl -tag -width Er
2364c089f4dSJason Evans.It Bq Er EINVAL
2374c089f4dSJason EvansInvalid value for
2384c089f4dSJason Evans.Fa attr .
2394c089f4dSJason Evans.El
2402a53c5ecSAlexey Zelkin.Pp
2419d09157aSPhilippe CharnierThe
2424c089f4dSJason Evans.Fn pthread_mutexattr_setprioceiling
2439d09157aSPhilippe Charnierfunction will fail if:
2444c089f4dSJason Evans.Bl -tag -width Er
2454c089f4dSJason Evans.It Bq Er EINVAL
2464c089f4dSJason EvansInvalid value for
2474c089f4dSJason Evans.Fa attr ,
2484c089f4dSJason Evansor invalid value for
2494c089f4dSJason Evans.Fa prioceiling .
2504c089f4dSJason Evans.El
2512a53c5ecSAlexey Zelkin.Pp
2529d09157aSPhilippe CharnierThe
2534c089f4dSJason Evans.Fn pthread_mutexattr_getprioceiling
2549d09157aSPhilippe Charnierfunction will fail if:
2554c089f4dSJason Evans.Bl -tag -width Er
2564c089f4dSJason Evans.It Bq Er EINVAL
2574c089f4dSJason EvansInvalid value for
2584c089f4dSJason Evans.Fa attr .
2594c089f4dSJason Evans.El
2602a53c5ecSAlexey Zelkin.Pp
2619d09157aSPhilippe CharnierThe
2624c089f4dSJason Evans.Fn pthread_mutexattr_setprotocol
2639d09157aSPhilippe Charnierfunction will fail if:
2644c089f4dSJason Evans.Bl -tag -width Er
2654c089f4dSJason Evans.It Bq Er EINVAL
2664c089f4dSJason EvansInvalid value for
2674c089f4dSJason Evans.Fa attr ,
2684c089f4dSJason Evansor invalid value for
2694c089f4dSJason Evans.Fa protocol .
2704c089f4dSJason Evans.El
2712a53c5ecSAlexey Zelkin.Pp
2729d09157aSPhilippe CharnierThe
2734c089f4dSJason Evans.Fn pthread_mutexattr_getprotocol
2749d09157aSPhilippe Charnierfunction will fail if:
2754c089f4dSJason Evans.Bl -tag -width Er
2764c089f4dSJason Evans.It Bq Er EINVAL
2774c089f4dSJason EvansInvalid value for
2784c089f4dSJason Evans.Fa attr .
2794c089f4dSJason Evans.El
2802a53c5ecSAlexey Zelkin.Pp
2819d09157aSPhilippe CharnierThe
2820a6e5fc2SKonstantin Belousov.Fn pthread_mutexattr_setpshared
2830a6e5fc2SKonstantin Belousovfunction will fail if:
2840a6e5fc2SKonstantin Belousov.Bl -tag -width Er
2850a6e5fc2SKonstantin Belousov.It Bq Er EINVAL
2860a6e5fc2SKonstantin BelousovInvalid value for
2870a6e5fc2SKonstantin Belousov.Fa attr ,
2880a6e5fc2SKonstantin Belousovor invalid value for
2890a6e5fc2SKonstantin Belousov.Fa shared .
2900a6e5fc2SKonstantin Belousov.El
2910a6e5fc2SKonstantin Belousov.Pp
2920a6e5fc2SKonstantin BelousovThe
2930a6e5fc2SKonstantin Belousov.Fn pthread_mutexattr_getpshared
2940a6e5fc2SKonstantin Belousovfunction will fail if:
2950a6e5fc2SKonstantin Belousov.Bl -tag -width Er
2960a6e5fc2SKonstantin Belousov.It Bq Er EINVAL
2970a6e5fc2SKonstantin BelousovInvalid value for
2980a6e5fc2SKonstantin Belousov.Fa attr .
2990a6e5fc2SKonstantin Belousov.El
3000a6e5fc2SKonstantin Belousov.Pp
3010a6e5fc2SKonstantin BelousovThe
3024c089f4dSJason Evans.Fn pthread_mutexattr_settype
3039d09157aSPhilippe Charnierfunction will fail if:
3044c089f4dSJason Evans.Bl -tag -width Er
3054c089f4dSJason Evans.It Bq Er EINVAL
3064c089f4dSJason EvansInvalid value for
3074c089f4dSJason Evans.Fa attr ,
3084c089f4dSJason Evansor invalid value for
3094c089f4dSJason Evans.Fa type .
3104c089f4dSJason Evans.El
3112a53c5ecSAlexey Zelkin.Pp
3129d09157aSPhilippe CharnierThe
3134c089f4dSJason Evans.Fn pthread_mutexattr_gettype
3149d09157aSPhilippe Charnierfunction will fail if:
3154c089f4dSJason Evans.Bl -tag -width Er
3164c089f4dSJason Evans.It Bq Er EINVAL
3174c089f4dSJason EvansInvalid value for
3184c089f4dSJason Evans.Fa attr .
3194c089f4dSJason Evans.El
3202a339d9eSKonstantin Belousov.Pp
3212a339d9eSKonstantin BelousovThe
3222a339d9eSKonstantin Belousov.Fn pthread_mutexattr_setrobust
3232a339d9eSKonstantin Belousovfunction will fail if:
3242a339d9eSKonstantin Belousov.Bl -tag -width Er
3252a339d9eSKonstantin Belousov.It Bq Er EINVAL
3262a339d9eSKonstantin BelousovInvalid value for
3272a339d9eSKonstantin Belousov.Fa attr ,
3282a339d9eSKonstantin Belousovor invalid value for
3292a339d9eSKonstantin Belousov.Fa robust .
3302a339d9eSKonstantin Belousov.El
3312a339d9eSKonstantin Belousov.Pp
3322a339d9eSKonstantin BelousovThe
3332a339d9eSKonstantin Belousov.Fn pthread_mutexattr_getrobust
3342a339d9eSKonstantin Belousovfunction will fail if:
3352a339d9eSKonstantin Belousov.Bl -tag -width Er
3362a339d9eSKonstantin Belousov.It Bq Er EINVAL
3372a339d9eSKonstantin BelousovInvalid value for
3382a339d9eSKonstantin Belousov.Fa attr .
3392a339d9eSKonstantin Belousov.El
3404c089f4dSJason Evans.Sh SEE ALSO
3414f03a2caSKonstantin Belousov.Xr libthr 3 ,
3424c089f4dSJason Evans.Xr pthread_mutex_init 3
3434c089f4dSJason Evans.Sh STANDARDS
3449d09157aSPhilippe CharnierThe
3454c089f4dSJason Evans.Fn pthread_mutexattr_init
3464c089f4dSJason Evansand
3474c089f4dSJason Evans.Fn pthread_mutexattr_destroy
3489d09157aSPhilippe Charnierfunctions conform to
349589a5e34SRuslan Ermilov.St -p1003.1-96
3502a53c5ecSAlexey Zelkin.Pp
3519d09157aSPhilippe CharnierThe
3524c089f4dSJason Evans.Fn pthread_mutexattr_setprioceiling ,
3534c089f4dSJason Evans.Fn pthread_mutexattr_getprioceiling ,
3544c089f4dSJason Evans.Fn pthread_mutexattr_setprotocol ,
3554c089f4dSJason Evans.Fn pthread_mutexattr_getprotocol ,
3560a6e5fc2SKonstantin Belousov.Fn pthread_mutexattr_setpshared ,
3570a6e5fc2SKonstantin Belousov.Fn pthread_mutexattr_getpshared ,
3584c089f4dSJason Evans.Fn pthread_mutexattr_settype ,
3594c089f4dSJason Evansand
3604c089f4dSJason Evans.Fn pthread_mutexattr_gettype
3619d09157aSPhilippe Charnierfunctions conform to
3622a339d9eSKonstantin Belousov.St -susv2 .
3632a339d9eSKonstantin BelousovThe
3642a339d9eSKonstantin Belousov.Fn pthread_mutexattr_setrobust
3652a339d9eSKonstantin Belousovand
3662a339d9eSKonstantin Belousov.Fn pthread_mutexattr_getrobust
3672a339d9eSKonstantin Belousovfunctions conform to
3682a339d9eSKonstantin Belousov.St -susv4 .
369