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 .
|