PTHREAD_BARRIERATTR_SETPSHARED(3) Library Functions Manual PTHREAD_BARRIERATTR_SETPSHARED(3)

pthread_barrierattr_getpshared pthread_barrierattr_setpsharedget and set the process-shared attribute of the barrier attributes object


#include <pthread.h>

int pthread_barrierattr_getpshared(const pthread_barrierattr_t
       *restrict attr, int *restrict pshared);
int pthread_barrierattr_setpshared(pthread_barrierattr_t *attr,
       int pshared);

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. See V2_chap02(3) for further requirements. 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.

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

The pthread_barrierattr_setpshared () function may fail if:

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

None.

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.

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.

None.

pthread_barrier_destroy(3), pthread_barrierattr_destroy(3)

XBD <pthread.h>

First released in Issue 6. Derived from IEEE Std 1003.1j-2000

The pthread_barrierattr_getpshared () and pthread_barrierattr_setpshared () functions are marked only as part of the Thread Process-Shared Synchronization option as the Threads option is now part of the Base.

The [EINVAL] error for an uninitialized barrier attributes object is removed; this condition results in undefined behavior.

POSIX.1-2008, Technical Corrigendum 2, XSH/TC2-2008/0266 [972] and XSH/TC2-2008/0267 [757] are applied.

January 1, 2016 posix.fail