PTHREAD_RWLOCKATTR(3) | Library Functions Manual | PTHREAD_RWLOCKATTR(3)

# NAME

`pthread_rwlockattr_init`, `pthread_rwlockattr_destroy`, `pthread_rwlockattr_getpshared`, `pthread_rwlockattr_setpshared` —
initialize, destroy or query read/write lock attributes

# LIBRARY

POSIX Threads Library (libpthread, -lpthread)

# SYNOPSIS

`#include <pthread.h>`

int
`pthread_rwlockattr_init`(pthread_rwlockattr_t *attr);

int
`pthread_rwlockattr_destroy`(pthread_rwlockattr_t *attr);

int
`pthread_rwlockattr_getpshared`(const pthread_rwlockattr_t *__restrict attr, int * __restrict pshared);

int
`pthread_rwlockattr_setpshared`(pthread_rwlockattr_t *attr, int pshared);

# DESCRIPTION

The `pthread_rwlockattr_init`() function is used to initialize a read/write lock attributes object.

The `pthread_rwlockattr_destroy`() function is used to destroy a read/write lock attribute object previously created with `pthread_rwlockattr_init`().

The `pthread_rwlockattr_getpshared`() function shall obtain the value of process-shared attribute from the initialized attributes object referenced by attr.

The `pthread_rwlockattr_setpshared`() function shall set the process-shared attribute in an initialized attributes object referenced by attr.

# RETURN VALUES

If successful, all these functions return zero. Otherwise an error number will be returned to indicate the error.

# ERRORS

`pthread_rwlockattr_init`() shall fail if:

[`ENOMEM`]
  Insufficient memory exists to initialize the read/write lock attributes object.

`pthread_rwlockattr_init`() and `pthread_rwlockattr_destroy`() may fail if:

[`EINVAL`]
  The value specified by attr is invalid.

`pthread_rwlockattr_getpshared`() and `pthread_rwlockattr_setpshared`() may fail if:

[`EINVAL`]
  The value specified by attr is invalid.

# SEE ALSO

pthread_rwlock_init(3)

# STANDARDS

Both functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).

# BUGS

The `pthread_rwlockattr_getpshared`() and `pthread_rwlockattr_setpshared`() functions are hidden by default since only thread shared attributes are supported.

June 12, 2016 | NetBSD 9.0