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