#include <pthread.h> int
pthread_barrierattr_destroy (pthread_barrierattr_t *attr); int
pthread_barrierattr_getpshared (const pthread_barrierattr_t *attr int *pshared); int
pthread_barrierattr_init (pthread_barrierattr_t *attr); int
pthread_barrierattr_setpshared (pthread_barrierattr_t *attr int pshared);
DESCRIPTION
The
pthread_barrierattr_init ();
function will initialize
Fa attr
with default attributes.
The
pthread_barrierattr_destroy ();
function will destroy
Fa attr
and release any resources that may have been allocated on its behalf.
The
pthread_barrierattr_getpshared ();
function will put the value of the process-shared attribute from
Fa attr
into the memory area pointed to by
Fa pshared .
The
pthread_barrierattr_setpshared ();
function will set the process-shared attribute of
Fa attr
to the value specified in
Fa pshared .
The argument
Fa pshared
may have one of the following values:
PTHREAD_PROCESS_PRIVATE
The barrier object it is attached to may only be accessed by
threads in the same process as the one that created the object.
PTHREAD_PROCESS_SHARED
The barrier object it is attached to may be accessed by
threads in processes other than the one that created the object.
RETURN VALUES
If successful, all these functions will return zero.
Otherwise, an error number will be returned to indicate the error.
None of these functions will return
Er EINTR .
ERRORS
The
pthread_barrierattr_destroy (,);
pthread_barrierattr_getpshared ();
and
pthread_barrierattr_setpshared ();
functions may fail if:
Bq Er EINVAL
The value specified by
Fa attr
is invalid.
The
pthread_barrierattr_init ();
function will fail if:
Bq Er ENOMEM
Insufficient memory to initialize the barrier attribute object
Fa attr .
The
pthread_barrierattr_setpshared ();
function will fail if:
Bq Er EINVAL
The value specified in
Fa pshared
is not one of the allowed values.
The
pthread_barrierattr_ (*);
functions first appeared in
Lb libkse
in
Fx 5.2 ,
and in
Lb libthr
in
Fx 5.3 .
BUGS
The implementation of
barriers
does not fully conform to
St -p1003.2
because the process-shared attribute is ignored in
Lb libthr ,
and in
Lb libkse ;
if any value other than
PTHREAD_PROCESSES_PRIVATE
is specified in a call to
pthread_barrierattr_setpshared (,);
it will return
Er EINVAL .