xref: /freebsd/share/man/man3/pthread_barrierattr.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1d4d7df5cSMike Makonnen.\" Copyright (c) 2004 Michael Telahun Makonnen
2d4d7df5cSMike Makonnen.\" All rights reserved.
3d4d7df5cSMike Makonnen.\"
4d4d7df5cSMike Makonnen.\" Redistribution and use in source and binary forms, with or without
5d4d7df5cSMike Makonnen.\" modification, are permitted provided that the following conditions
6d4d7df5cSMike Makonnen.\" are met:
7d4d7df5cSMike Makonnen.\" 1. Redistributions of source code must retain the above copyright
8d4d7df5cSMike Makonnen.\"    notice, this list of conditions and the following disclaimer.
9d4d7df5cSMike Makonnen.\" 2. Redistributions in binary form must reproduce the above copyright
10d4d7df5cSMike Makonnen.\"    notice, this list of conditions and the following disclaimer in the
11d4d7df5cSMike Makonnen.\"    documentation and/or other materials provided with the distribution.
12d4d7df5cSMike Makonnen.\"
13d4d7df5cSMike Makonnen.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14d4d7df5cSMike Makonnen.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15d4d7df5cSMike Makonnen.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16d4d7df5cSMike Makonnen.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17d4d7df5cSMike Makonnen.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18d4d7df5cSMike Makonnen.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19d4d7df5cSMike Makonnen.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20d4d7df5cSMike Makonnen.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21d4d7df5cSMike Makonnen.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22d4d7df5cSMike Makonnen.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23d4d7df5cSMike Makonnen.\" SUCH DAMAGE.
24d4d7df5cSMike Makonnen.\"
25b6413b6dSPedro F. Giffuni.Dd August 17, 2018
26715a0284SRuslan Ermilov.Dt PTHREAD_BARRIERATTR 3
27d4d7df5cSMike Makonnen.Os
28d4d7df5cSMike Makonnen.Sh NAME
29715a0284SRuslan Ermilov.Nm pthread_barrierattr_destroy , pthread_barrierattr_getpshared ,
30715a0284SRuslan Ermilov.Nm pthread_barrierattr_init , pthread_barrierattr_setpshared
31d4d7df5cSMike Makonnen.Nd "manipulate a barrier attribute object"
32d4d7df5cSMike Makonnen.Sh LIBRARY
33d4d7df5cSMike Makonnen.Lb libpthread
34d4d7df5cSMike Makonnen.Sh SYNOPSIS
35d4d7df5cSMike Makonnen.In pthread.h
36d4d7df5cSMike Makonnen.Ft int
37d4d7df5cSMike Makonnen.Fn pthread_barrierattr_destroy "pthread_barrierattr_t *attr"
38d4d7df5cSMike Makonnen.Ft int
39*9f3b6cdbSKonstantin Belousov.Fo pthread_barrierattr_getpshared
40*9f3b6cdbSKonstantin Belousov.Fa "const pthread_barrierattr_t *restrict attr" "int *restrict pshared"
41*9f3b6cdbSKonstantin Belousov.Fc
42d4d7df5cSMike Makonnen.Ft int
43d4d7df5cSMike Makonnen.Fn pthread_barrierattr_init "pthread_barrierattr_t *attr"
44d4d7df5cSMike Makonnen.Ft int
45*9f3b6cdbSKonstantin Belousov.Fo pthread_barrierattr_setpshared
46*9f3b6cdbSKonstantin Belousov.Fa "pthread_barrierattr_t *attr" "int pshared"
47*9f3b6cdbSKonstantin Belousov.Fc
48d4d7df5cSMike Makonnen.Sh DESCRIPTION
49d4d7df5cSMike MakonnenThe
50d4d7df5cSMike Makonnen.Fn pthread_barrierattr_init
51d4d7df5cSMike Makonnenfunction will initialize
52d4d7df5cSMike Makonnen.Fa attr
53d4d7df5cSMike Makonnenwith default attributes.
54d4d7df5cSMike MakonnenThe
55d4d7df5cSMike Makonnen.Fn pthread_barrierattr_destroy
56d4d7df5cSMike Makonnenfunction will destroy
57d4d7df5cSMike Makonnen.Fa attr
58d4d7df5cSMike Makonnenand release any resources that may have been allocated on its behalf.
59d4d7df5cSMike Makonnen.Pp
60d4d7df5cSMike MakonnenThe
61d4d7df5cSMike Makonnen.Fn pthread_barrierattr_getpshared
62d4d7df5cSMike Makonnenfunction will put the value of the process-shared attribute from
63d4d7df5cSMike Makonnen.Fa attr
64d4d7df5cSMike Makonneninto the memory area pointed to by
65d4d7df5cSMike Makonnen.Fa pshared .
66d4d7df5cSMike MakonnenThe
67d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared
68d4d7df5cSMike Makonnenfunction will set the process-shared attribute of
69d4d7df5cSMike Makonnen.Fa attr
70d4d7df5cSMike Makonnento the value specified in
71d4d7df5cSMike Makonnen.Fa pshared .
72d4d7df5cSMike MakonnenThe argument
73d4d7df5cSMike Makonnen.Fa pshared
74d4d7df5cSMike Makonnenmay have one of the following values:
75d4d7df5cSMike Makonnen.Bl -tag -width ".Dv PTHREAD_PROCESS_PRIVATE"
76d4d7df5cSMike Makonnen.It Dv PTHREAD_PROCESS_PRIVATE
77d4d7df5cSMike MakonnenThe barrier object it is attached to may only be accessed by
78d4d7df5cSMike Makonnenthreads in the same process as the one that created the object.
79d4d7df5cSMike Makonnen.It Dv PTHREAD_PROCESS_SHARED
80d4d7df5cSMike MakonnenThe barrier object it is attached to may be accessed by
81d4d7df5cSMike Makonnenthreads in processes other than the one that created the object.
82d4d7df5cSMike Makonnen.El
83715a0284SRuslan Ermilov.Sh RETURN VALUES
84715a0284SRuslan ErmilovIf successful, all these functions will return zero.
85715a0284SRuslan ErmilovOtherwise, an error number will be returned to indicate the error.
86d4d7df5cSMike Makonnen.Pp
87715a0284SRuslan ErmilovNone of these functions will return
88715a0284SRuslan Ermilov.Er EINTR .
89d4d7df5cSMike Makonnen.Sh ERRORS
90d4d7df5cSMike MakonnenThe
91d4d7df5cSMike Makonnen.Fn pthread_barrierattr_destroy ,
92d4d7df5cSMike Makonnen.Fn pthread_barrierattr_getpshared
93d4d7df5cSMike Makonnenand
94d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared
95d4d7df5cSMike Makonnenfunctions may fail if:
96d4d7df5cSMike Makonnen.Bl -tag -width Er
97d4d7df5cSMike Makonnen.It Bq Er EINVAL
98d4d7df5cSMike MakonnenThe value specified by
99d4d7df5cSMike Makonnen.Fa attr
100d4d7df5cSMike Makonnenis invalid.
101d4d7df5cSMike Makonnen.El
102d4d7df5cSMike Makonnen.Pp
103d4d7df5cSMike MakonnenThe
104d4d7df5cSMike Makonnen.Fn pthread_barrierattr_init
105d4d7df5cSMike Makonnenfunction will fail if:
106d4d7df5cSMike Makonnen.Bl -tag -width Er
107d4d7df5cSMike Makonnen.It Bq Er ENOMEM
108d4d7df5cSMike MakonnenInsufficient memory to initialize the barrier attribute object
109d4d7df5cSMike Makonnen.Fa attr .
110d4d7df5cSMike Makonnen.El
111d4d7df5cSMike Makonnen.Pp
112d4d7df5cSMike MakonnenThe
113d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared
114d4d7df5cSMike Makonnenfunction will fail if:
115d4d7df5cSMike Makonnen.Bl -tag -width Er
116d4d7df5cSMike Makonnen.It Bq Er EINVAL
117d4d7df5cSMike MakonnenThe value specified in
118d4d7df5cSMike Makonnen.Fa pshared
119d4d7df5cSMike Makonnenis not one of the allowed values.
120d4d7df5cSMike Makonnen.El
121d4d7df5cSMike Makonnen.Sh SEE ALSO
122d4d7df5cSMike Makonnen.Xr pthread_barrier_destroy 3 ,
123d4d7df5cSMike Makonnen.Xr pthread_barrier_init 3 ,
124715a0284SRuslan Ermilov.Xr pthread_barrier_wait 3
125d4d7df5cSMike Makonnen.Sh HISTORY
126d4d7df5cSMike MakonnenThe
127715a0284SRuslan Ermilov.Fn pthread_barrierattr_*
128d4d7df5cSMike Makonnenfunctions first appeared in
1293e9ed1efSRuslan Ermilov.Lb libkse
130d4d7df5cSMike Makonnenin
131d4d7df5cSMike Makonnen.Fx 5.2 ,
132d4d7df5cSMike Makonnenand in
133d4d7df5cSMike Makonnen.Lb libthr
134d4d7df5cSMike Makonnenin
135d4d7df5cSMike Makonnen.Fx 5.3 .
136631e4e3aSJilles TjoelkerSupport for process-shared barriers appeared in
137631e4e3aSJilles Tjoelker.Fx 11.0 .
138