pthread_barrierattr_getpshared or pthread_barrierattr_setpshared Subroutine

Purpose

Gets and sets the process-shared attribute of the barrier attributes object.

Syntax

#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); 

Description

The pthread_barrierattr_getpshared subroutine obtains the value of the process-shared attribute from the attributes object referenced by the attr parameter. The pthread_barrierattr_setpshared subroutine sets the process-shared attribute in an initialized attributes object referenced by the attr parameter.

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 is only 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 is PTHREAD_PROCESS_PRIVATE. Both constants PTHREAD_PROCESS_SHARED and PTHREAD_PROCESS_PRIVATE are defined in the pthread.h file.

Additional attributes, their default values, and the names of the associated functions to get and set those attribute values are implementation-defined.

Return Values

If successful, the pthread_barrierattr_getpshared subroutine will 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 subroutine will return zero; otherwise, an error number shall be returned to indicate the error.

Error Codes

These functions may fail if:

Item Description
EINVAL The value specified by attr is invalid.

The pthread_barrierattr_setpshared subroutine will fail if:

Item Description
EINVAL The new value specified for the process-shared attribute is not one of the legal values PTHREAD_PROCESS_SHARED or PTHREAD_PROCESS_PRIVATE.