NAME
pthread_barrierattr_getpshared
pthread_barrierattr_setpshared —
get and set the process-shared attribute of the barrier
attributes object
SYNOPSIS
int pthread_barrierattr_getpshared(const pthread_barrierattr_t
*restrict attr, int *restrict pshared);
int pthread_barrierattr_setpshared(pthread_barrierattr_t *attr,
int pshared);
DESCRIPTION
The pthread_barrierattr_getpshared ()
function shall obtain the value of the process-shared
attribute from the attributes object referenced by attr.
The pthread_barrierattr_setpshared () function shall set
the process-shared attribute in an initialized attributes
object referenced by attr.
The process-shared attribute is set to PTHREAD_PROCESS_SHARED to permit a barrier to be operated upon by any thread that has access to the memory where the barrier is allocated. If the process-shared attribute is PTHREAD_PROCESS_PRIVATE, the barrier shall only be operated upon by threads created within the same process as the thread that initialized the barrier; if threads of different processes attempt to operate on such a barrier, the behavior is undefined. The default value of the attribute shall be PTHREAD_PROCESS_PRIVATE. Both constants PTHREAD_PROCESS_SHARED and PTHREAD_PROCESS_PRIVATE are defined in <pthread.h>.
Additional attributes, their default values, and the names of the associated functions to get and set those attribute values are implementation-defined.
The behavior is undefined if the value specified by the
attr argument to
pthread_barrierattr_getpshared () or
pthread_barrierattr_setpshared () does not refer to an
initialized barrier attributes object.
RETURN VALUE
If successful, the
pthread_barrierattr_getpshared () function shall
return zero and store the value of the process-shared
attribute of attr into the object referenced by the
pshared
parameter. Otherwise, an error number shall be returned to indicate the
error.
If successful, the pthread_barrierattr_setpshared () function shall return zero; otherwise, an error number shall be returned to indicate the error.
ERRORS
The pthread_barrierattr_setpshared () function may fail if:
- [EINVAL]
- The new value specified for the process-shared attribute is not one of the legal values PTHREAD_PROCESS_SHARED or PTHREAD_PROCESS_PRIVATE.
These functions shall not return an error code of [EINTR].
EXAMPLES
None.
APPLICATION USAGE
The pthread_barrierattr_getpshared () and
pthread_barrierattr_setpshared () functions are part of
the Thread Process-Shared Synchronization option and need not be provided on
all implementations.
RATIONALE
If an implementation detects that the value specified by the
attr argument to
pthread_barrierattr_getpshared () or
pthread_barrierattr_setpshared () does not refer to an
initialized barrier attributes object, it is recommended that the function
should fail and report an [EINVAL] error.
FUTURE DIRECTIONS
None.
SEE ALSO
pthread_barrier_destroy(3) , pthread_barrierattr_destroy(3)
XBD <pthread.h>
CHANGE HISTORY
First released in Issue 6. Derived from IEEE Std 1003.1j-2000
Issue 7
The pthread_barrierattr_getpshared () and
pthread_barrierattr_setpshared () functions are moved from
the Barriers option.
The [EINVAL] error for an uninitialized barrier attributes object is removed; this condition results in undefined behavior.