pthread_barrierattr(3)
NAME
- pthread_barrierattr_destroy, pthread_barrierattr_getpshared, pthread_barrierattr_init, pthread_barrierattr_setpshared
- manipulate a
barrier attribute object
LIBRARY
library ``libpthread'' library ``libthr''
SYNOPSIS
#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 attr
- with default
attributes. The pthread_barrierattr_destroy() function will - destroy 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 attr into the memory area - pointed to by
pshared. The pthread_barrierattr_setpshared() function will - set the process-shared attribute of attr to the value specified in
- pshared. The
argument pshared may have one of the following values: - PTHREAD_PROCESS_PRIVATE The barrier object it is at
- tached 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 at
- tached to may be
- accessed by threads in process
- es other than
the one that created the ob - ject.
RETURN VALUES
- If successful, all these functions will return zero. Other
- wise, an error
number will be returned to indicate the error. - None of these functions will return EINTR.
ERRORS
- The pthread_barrierattr_destroy(),
- pthread_barrierattr_getpshared() and pthread_barrierattr_setpshared() functions may fail if:
- [EINVAL] The value specified by attr is invalid.
- The pthread_barrierattr_init() function will fail if:
- [ENOMEM] Insufficient memory to initialize the
- barrier
- attribute object attr.
- The pthread_barrierattr_setpshared() function will fail if:
- [EINVAL] The value specified in pshared is not one
- of the
- allowed values.
SEE ALSO
pthread_barrier_destroy(3), pthread_barrier_init(3),
pthread_barrier_wait(3)
HISTORY
- The pthread_barrierattr_*() functions first appeared in li
- brary
``libpthread'' in FreeBSD 5.2, and in library ``libthr'' in - FreeBSD 5.3.
BUGS
- The implementation of barriers does not fully conform to
- IEEE Std 1003.2
(``POSIX.2'') because the process-shared attribute is ig - nored in library
``libthr'', and in library ``libpthread''; if any value oth - er than
PTHREAD_PROCESSES_PRIVATE is specified in a call to
pthread_barrierattr_setpshared(), it will return EINVAL. - BSD February 19, 2004