PTHREAD_ATTR_GETSCOPE(3) | Library Functions Manual | PTHREAD_ATTR_GETSCOPE(3)

# NAME

`pthread_attr_getscope`, `pthread_attr_setscope` —
get and set the contention scope attribute

# LIBRARY

POSIX Threads Library (libpthread, -lpthread)

# SYNOPSIS

`#include <pthread.h>`

int
`pthread_attr_getscope`(const pthread_attr_t * restrict attr, int * restrict contentionscope);

int
`pthread_attr_setscope`(pthread_attr_t *attr, int contentionscope);

# DESCRIPTION

The `pthread_attr_getscope`() and `pthread_attr_setscope`() functions get and set, respectively, the contention scope attribute in the attr object.

The contentionscope parameter specifies the scheduling contention scope of a thread. It is only possible to set the scope of a thread before the thread is created. There are two possible contention scopes:

`PTHREAD_SCOPE_SYSTEM`
  The thread will contend for CPU resources with all other processes and threads in the system. Generally this means that the user thread is bound directly to the kernel scheduling for its entire lifetime.
`PTHREAD_SCOPE_PROCESS`
  The thread will contend with other threads with the same scope attribute. In general, this means that all `PTHREAD_SCOPE_PROCESS` threads are grouped together and this group of threads contends for CPU resources. This is commonly seen to require a hybrid (“M:N”) threading model in order to multiplex the user and kernel space scheduling.

Only `PTHREAD_SCOPE_SYSTEM` is supported in NetBSD.

# RETURN VALUES

Upon successful completion, both functions return 0. Otherwise an error number is returned to indicate the error.

# ERRORS

No errors are defined for `pthread_attr_getscope`().

The `pthread_attr_setscope`() function shall fail if:

[`EINVAL`]
  Invalid parameter.

# SEE ALSO

pthread_attr(3), csf(9)

# STANDARDS

Both functions conform to ISO/IEC 9945-1:1996 (“POSIX.1”).

July 7, 2010 | NetBSD 9.2