PTHREAD_MUTEXATTR(3)

NAME
pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_setprioceiling, pthread_mutexattr_getprioceiling, pthread_mutexattr_setprotocol, pthread_mutexattr_getprotocol, pthread_mutexattr_settype, pthread_mutexattr_gettype, pthread_mutexattr_getpshared, pthread_mutexattr_setpshared - mutex attribute operations

LIBRARY
libpthread

SYNOPSIS
#include <pthread.h>
int
pthread_mutexattr_init(pthread_mutexattr_t *attr);
int
pthread_mutexattr_destroy(pthread_mutexattr_t *attr);
int
pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr, int prioceiling);
int
pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * restrict attr, int * restrict prioceiling);
int
pthread_mutexattr_setprotocol(pthread_mutexattr_t *attr, int protocol);
int
pthread_mutexattr_getprotocol(const pthread_mutexattr_t * restrict attr, int * restrict protocol);
int
pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
int
pthread_mutexattr_gettype(const pthread_mutexattr_t * restrict attr, int * restrict type);
int
pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared);
int
pthread_mutexattr_getpshared(const pthread_mutexattr_t * restrict attr, int * restrict pshared);

DESCRIPTION
Mutex attributes are used to specify parameters to pthread_mutex_init(). One attribute object can be used in multiple calls to pthread_mutex_init(), with or without modifications between calls.

The pthread_mutexattr_init() function initializes attr with all the default mutex attributes.

The pthread_mutexattr_destroy() function destroys attr.

The pthread_mutexattr_set*() functions set the attribute that corresponds to each function name. Note that the pthread_mutexattr_setpshared() function only supports PTHREAD_PROCESS_PRIVATE at the moment.

The pthread_mutexattr_get*() functions copy the value of the attribute that corresponds to each function name to the location pointed to by the second function parameter.

RETURN VALUES
If successful, these functions return 0. Otherwise, an error number is returned to indicate the error.

ERRORS
The pthread_mutexattr_init() function will fail if:

[ENOMEM]
    Out of memory.

The pthread_mutexattr_destroy() function will fail if:

[EINVAL]
    Invalid value for attr.

The pthread_mutexattr_setprioceiling() function will fail if:

[EINVAL]
    Invalid value for attr, or invalid value for prioceiling.

The pthread_mutexattr_getprioceiling() function will fail if:

[EINVAL]
    Invalid value for attr.

The pthread_mutexattr_setprotocol() function will fail if:

[EINVAL]
    Invalid value for attr, or invalid value for protocol.

The pthread_mutexattr_getprotocol() function will fail if:

[EINVAL]
    Invalid value for attr.

The pthread_mutexattr_getpshared() and pthread_mutexattr_setpshared() functions will fail if:

[EINVAL]
    The value specified by attr is invalid.

The pthread_mutexattr_settype() function will fail if:

[EINVAL]
    Invalid value for attr, or invalid value for type.

The pthread_mutexattr_gettype() function will fail if:

[EINVAL]
    Invalid value for attr.

SEE ALSO
pthread_mutex_init(3)

STANDARDS
The pthread_mutexattr_init() and pthread_mutexattr_destroy() functions conform to p1003.1-96.

The pthread_mutexattr_setprioceiling(), pthread_mutexattr_getprioceiling(), pthread_mutexattr_setprotocol(), pthread_mutexattr_getprotocol(), pthread_mutexattr_settype(), and pthread_mutexattr_gettype() functions conform to susv2.