103 lines
2.7 KiB
Groff
103 lines
2.7 KiB
Groff
|
.\" $OpenBSD: pthread_barrier_init.3,v 1.5 2022/03/31 17:27:17 naddy Exp $
|
||
|
.\"
|
||
|
.\" Copyright (c) 2012 Paul Irofti <paul@irofti.net>
|
||
|
.\"
|
||
|
.\" Permission to use, copy, modify, and distribute this software for any
|
||
|
.\" purpose with or without fee is hereby granted, provided that the above
|
||
|
.\" copyright notice and this permission notice appear in all copies.
|
||
|
.\"
|
||
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||
|
.\"
|
||
|
.\"
|
||
|
.Dd $Mdocdate: March 31 2022 $
|
||
|
.Dt PTHREAD_BARRIER_INIT 3
|
||
|
.Os
|
||
|
.Sh NAME
|
||
|
.Nm pthread_barrier_init ,
|
||
|
.Nm pthread_barrier_destroy
|
||
|
.Nd initialize and destroy a barrier object
|
||
|
.Sh SYNOPSIS
|
||
|
.In pthread.h
|
||
|
.Ft int
|
||
|
.Fn pthread_barrier_init "pthread_barrier_t *barrier" "pthread_barrierattr_t *attr" "unsigned int count"
|
||
|
.Ft int
|
||
|
.Fn pthread_barrier_destroy "pthread_barrier_t *barrier"
|
||
|
.Sh DESCRIPTION
|
||
|
The
|
||
|
.Fn pthread_barrier_init
|
||
|
function creates a new barrier object, with attributes specified with
|
||
|
.Fa attr
|
||
|
and with a threshold specified with
|
||
|
.Fa count .
|
||
|
If
|
||
|
.Fa attr
|
||
|
is
|
||
|
.Dv NULL ,
|
||
|
the default attributes are used.
|
||
|
The
|
||
|
.Fa count
|
||
|
argument is later used by the
|
||
|
.Fn pthread_barrier_wait
|
||
|
function to check if the required number of threads reached the barrier.
|
||
|
.Pp
|
||
|
The
|
||
|
.Fn pthread_barrier_destroy
|
||
|
function frees the resources allocated for
|
||
|
.Fa barrier .
|
||
|
.Sh RETURN VALUES
|
||
|
If successful,
|
||
|
.Fn pthread_barrier_init
|
||
|
and
|
||
|
.Fn pthread_barrier_destroy
|
||
|
return zero;
|
||
|
otherwise an error number is returned to indicate the error.
|
||
|
.Sh ERRORS
|
||
|
.Fn pthread_barrier_init
|
||
|
will fail if:
|
||
|
.Bl -tag -width Er
|
||
|
.It Bq Er EINVAL
|
||
|
The value specified by
|
||
|
.Fa barrier
|
||
|
or
|
||
|
.Fa attr
|
||
|
is invalid.
|
||
|
.It Bq Er ENOMEM
|
||
|
The process cannot allocate enough memory to create another barrier object.
|
||
|
.It Bq Er ENOTSUP
|
||
|
The attributes specified by
|
||
|
.Fa attr
|
||
|
are not supported by the current implementation.
|
||
|
.El
|
||
|
.Pp
|
||
|
.Fn pthread_barrier_destroy
|
||
|
will fail if:
|
||
|
.Bl -tag -width Er
|
||
|
.It Bq Er EINVAL
|
||
|
The value specified by
|
||
|
.Fa barrier
|
||
|
is invalid.
|
||
|
.It Bq Er EBUSY
|
||
|
There are still threads waiting on the barrier.
|
||
|
.El
|
||
|
.Sh SEE ALSO
|
||
|
.Xr pthread_barrier_wait 3 ,
|
||
|
.Xr pthread_barrierattr_getpshared 3 ,
|
||
|
.Xr pthread_barrierattr_init 3
|
||
|
.Sh STANDARDS
|
||
|
.Fn pthread_barrier_init
|
||
|
and
|
||
|
.Fn pthread_barrier_destroy
|
||
|
conform to
|
||
|
.St -p1003.1-2008 .
|
||
|
.Sh BUGS
|
||
|
Currently only private barriers are supported and the pshared attribute is
|
||
|
always set that way.
|
||
|
Any attempts to change that value will trigger
|
||
|
.Er ENOTSUP .
|