PTHREAD_RWLOCKATTR(3)

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 8.0