xref: /freebsd/share/man/man3/pthread_barrierattr.3 (revision 3e9ed1efb85a632c2b4bee70f3ae37a464aba6ad)
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.\"
25d4d7df5cSMike Makonnen.\" $FreeBSD$
26d4d7df5cSMike Makonnen.\"
27d4d7df5cSMike Makonnen.Dd February 19, 2004
28715a0284SRuslan Ermilov.Dt PTHREAD_BARRIERATTR 3
29d4d7df5cSMike Makonnen.Os
30d4d7df5cSMike Makonnen.Sh NAME
31715a0284SRuslan Ermilov.Nm pthread_barrierattr_destroy , pthread_barrierattr_getpshared ,
32715a0284SRuslan Ermilov.Nm pthread_barrierattr_init , pthread_barrierattr_setpshared
33d4d7df5cSMike Makonnen.Nd "manipulate a barrier attribute object"
34d4d7df5cSMike Makonnen.Sh LIBRARY
35d4d7df5cSMike Makonnen.Lb libpthread
36d4d7df5cSMike Makonnen.Sh SYNOPSIS
37d4d7df5cSMike Makonnen.In pthread.h
38d4d7df5cSMike Makonnen.Ft int
39d4d7df5cSMike Makonnen.Fn pthread_barrierattr_destroy "pthread_barrierattr_t *attr"
40d4d7df5cSMike Makonnen.Ft int
41d4d7df5cSMike Makonnen.Fn pthread_barrierattr_getpshared "const pthread_barrierattr_t *attr" "int *pshared"
42d4d7df5cSMike Makonnen.Ft int
43d4d7df5cSMike Makonnen.Fn pthread_barrierattr_init "pthread_barrierattr_t *attr"
44d4d7df5cSMike Makonnen.Ft int
45d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared "pthread_barrierattr_t *attr" "int pshared"
46d4d7df5cSMike Makonnen.Sh DESCRIPTION
47d4d7df5cSMike MakonnenThe
48d4d7df5cSMike Makonnen.Fn pthread_barrierattr_init
49d4d7df5cSMike Makonnenfunction will initialize
50d4d7df5cSMike Makonnen.Fa attr
51d4d7df5cSMike Makonnenwith default attributes.
52d4d7df5cSMike MakonnenThe
53d4d7df5cSMike Makonnen.Fn pthread_barrierattr_destroy
54d4d7df5cSMike Makonnenfunction will destroy
55d4d7df5cSMike Makonnen.Fa attr
56d4d7df5cSMike Makonnenand release any resources that may have been allocated on its behalf.
57d4d7df5cSMike Makonnen.Pp
58d4d7df5cSMike MakonnenThe
59d4d7df5cSMike Makonnen.Fn pthread_barrierattr_getpshared
60d4d7df5cSMike Makonnenfunction will put the value of the process-shared attribute from
61d4d7df5cSMike Makonnen.Fa attr
62d4d7df5cSMike Makonneninto the memory area pointed to by
63d4d7df5cSMike Makonnen.Fa pshared .
64d4d7df5cSMike MakonnenThe
65d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared
66d4d7df5cSMike Makonnenfunction will set the process-shared attribute of
67d4d7df5cSMike Makonnen.Fa attr
68d4d7df5cSMike Makonnento the value specified in
69d4d7df5cSMike Makonnen.Fa pshared .
70d4d7df5cSMike MakonnenThe argument
71d4d7df5cSMike Makonnen.Fa pshared
72d4d7df5cSMike Makonnenmay have one of the following values:
73d4d7df5cSMike Makonnen.Bl -tag -width ".Dv PTHREAD_PROCESS_PRIVATE"
74d4d7df5cSMike Makonnen.It Dv PTHREAD_PROCESS_PRIVATE
75d4d7df5cSMike MakonnenThe barrier object it is attached to may only be accessed by
76d4d7df5cSMike Makonnenthreads in the same process as the one that created the object.
77d4d7df5cSMike Makonnen.It Dv PTHREAD_PROCESS_SHARED
78d4d7df5cSMike MakonnenThe barrier object it is attached to may be accessed by
79d4d7df5cSMike Makonnenthreads in processes other than the one that created the object.
80d4d7df5cSMike Makonnen.El
81715a0284SRuslan Ermilov.Sh RETURN VALUES
82715a0284SRuslan ErmilovIf successful, all these functions will return zero.
83715a0284SRuslan ErmilovOtherwise, an error number will be returned to indicate the error.
84d4d7df5cSMike Makonnen.Pp
85715a0284SRuslan ErmilovNone of these functions will return
86715a0284SRuslan Ermilov.Er EINTR .
87d4d7df5cSMike Makonnen.Sh ERRORS
88d4d7df5cSMike MakonnenThe
89d4d7df5cSMike Makonnen.Fn pthread_barrierattr_destroy ,
90d4d7df5cSMike Makonnen.Fn pthread_barrierattr_getpshared
91d4d7df5cSMike Makonnenand
92d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared
93d4d7df5cSMike Makonnenfunctions may fail if:
94d4d7df5cSMike Makonnen.Bl -tag -width Er
95d4d7df5cSMike Makonnen.It Bq Er EINVAL
96d4d7df5cSMike MakonnenThe value specified by
97d4d7df5cSMike Makonnen.Fa attr
98d4d7df5cSMike Makonnenis invalid.
99d4d7df5cSMike Makonnen.El
100d4d7df5cSMike Makonnen.Pp
101d4d7df5cSMike MakonnenThe
102d4d7df5cSMike Makonnen.Fn pthread_barrierattr_init
103d4d7df5cSMike Makonnenfunction will fail if:
104d4d7df5cSMike Makonnen.Bl -tag -width Er
105d4d7df5cSMike Makonnen.It Bq Er ENOMEM
106d4d7df5cSMike MakonnenInsufficient memory to initialize the barrier attribute object
107d4d7df5cSMike Makonnen.Fa attr .
108d4d7df5cSMike Makonnen.El
109d4d7df5cSMike Makonnen.Pp
110d4d7df5cSMike MakonnenThe
111d4d7df5cSMike Makonnen.Fn pthread_barrierattr_setpshared
112d4d7df5cSMike Makonnenfunction will fail if:
113d4d7df5cSMike Makonnen.Bl -tag -width Er
114d4d7df5cSMike Makonnen.It Bq Er EINVAL
115d4d7df5cSMike MakonnenThe value specified in
116d4d7df5cSMike Makonnen.Fa pshared
117d4d7df5cSMike Makonnenis not one of the allowed values.
118d4d7df5cSMike Makonnen.El
119d4d7df5cSMike Makonnen.Sh SEE ALSO
120d4d7df5cSMike Makonnen.Xr pthread_barrier_destroy 3 ,
121d4d7df5cSMike Makonnen.Xr pthread_barrier_init 3 ,
122715a0284SRuslan Ermilov.Xr pthread_barrier_wait 3
123d4d7df5cSMike Makonnen.Sh HISTORY
124d4d7df5cSMike MakonnenThe
125715a0284SRuslan Ermilov.Fn pthread_barrierattr_*
126d4d7df5cSMike Makonnenfunctions first appeared in
1273e9ed1efSRuslan Ermilov.Lb libkse
128d4d7df5cSMike Makonnenin
129d4d7df5cSMike Makonnen.Fx 5.2 ,
130d4d7df5cSMike Makonnenand in
131d4d7df5cSMike Makonnen.Lb libthr
132d4d7df5cSMike Makonnenin
133d4d7df5cSMike Makonnen.Fx 5.3 .
134d4d7df5cSMike Makonnen.Sh BUGS
135d4d7df5cSMike MakonnenThe implementation of
136715a0284SRuslan Ermilovbarriers
137d4d7df5cSMike Makonnendoes not fully conform to
138d4d7df5cSMike Makonnen.St -p1003.2
139d4d7df5cSMike Makonnenbecause the process-shared attribute is ignored in
140d4d7df5cSMike Makonnen.Lb libthr ,
141d4d7df5cSMike Makonnenand in
1423e9ed1efSRuslan Ermilov.Lb libkse ;
143d4d7df5cSMike Makonnenif any value other than
144d4d7df5cSMike Makonnen.Dv PTHREAD_PROCESSES_PRIVATE
145d4d7df5cSMike Makonnenis specified in a call to
146715a0284SRuslan Ermilov.Fn pthread_barrierattr_setpshared ,
147715a0284SRuslan Ermilovit will return
148715a0284SRuslan Ermilov.Er EINVAL .
149