dwww Home | Manual pages | Find package

pthread_attr_setscope(3)   Library Functions Manual   pthread_attr_setscope(3)

NAME
       pthread_attr_setscope, pthread_attr_getscope - set/get contention scope
       attribute in thread attributes object

LIBRARY
       POSIX threads library (libpthread, -lpthread)

SYNOPSIS
       #include <pthread.h>

       int pthread_attr_setscope(pthread_attr_t *attr, int scope);
       int pthread_attr_getscope(const pthread_attr_t *restrict attr,
                                 int *restrict scope);

DESCRIPTION
       The  pthread_attr_setscope()  function  sets  the  contention scope at-
       tribute of the thread attributes object referred  to  by  attr  to  the
       value  specified  in scope.  The contention scope attribute defines the
       set of threads against which a thread competes for  resources  such  as
       the CPU.  POSIX.1 specifies two possible values for scope:

       PTHREAD_SCOPE_SYSTEM
              The  thread competes for resources with all other threads in all
              processes on the system that are in the same scheduling  alloca-
              tion   domain   (a   group   of   one   or   more   processors).
              PTHREAD_SCOPE_SYSTEM threads are scheduled relative to  one  an-
              other according to their scheduling policy and priority.

       PTHREAD_SCOPE_PROCESS
              The  thread competes for resources with all other threads in the
              same   process    that    were    also    created    with    the
              PTHREAD_SCOPE_PROCESS  contention  scope.  PTHREAD_SCOPE_PROCESS
              threads are scheduled relative to other threads in  the  process
              according  to  their  scheduling  policy  and priority.  POSIX.1
              leaves it unspecified  how  these  threads  contend  with  other
              threads  in other process on the system or with other threads in
              the same process that were created with the PTHREAD_SCOPE_SYSTEM
              contention scope.

       POSIX.1 requires that an implementation support at least one  of  these
       contention   scopes.   Linux  supports  PTHREAD_SCOPE_SYSTEM,  but  not
       PTHREAD_SCOPE_PROCESS.

       On systems that support multiple contention scopes, then, in order  for
       the  parameter  setting  made by pthread_attr_setscope() to have effect
       when calling pthread_create(3), the caller must  use  pthread_attr_set-
       inheritsched(3)  to  set the inherit-scheduler attribute of the attrib-
       utes object attr to PTHREAD_EXPLICIT_SCHED.

       The pthread_attr_getscope() function returns the contention  scope  at-
       tribute  of  the  thread  attributes  object referred to by attr in the
       buffer pointed to by scope.

RETURN VALUE
       On success, these functions return 0; on error, they return  a  nonzero
       error number.

ERRORS
       pthread_attr_setscope() can fail with the following errors:

       EINVAL An invalid value was specified in scope.

       ENOTSUP
              scope  specified  the  value PTHREAD_SCOPE_PROCESS, which is not
              supported on Linux.

ATTRIBUTES
       For an explanation of the terms  used  in  this  section,  see  attrib-
       utes(7).
       ┌───────────────────────────────────────────┬───────────────┬─────────┐
       │ Interface                                 Attribute     Value   │
       ├───────────────────────────────────────────┼───────────────┼─────────┤
       │ pthread_attr_setscope(),                  │ Thread safety │ MT-Safe │
       │ pthread_attr_getscope()                   │               │         │
       └───────────────────────────────────────────┴───────────────┴─────────┘

STANDARDS
       POSIX.1-2008.

HISTORY
       POSIX.1-2001.

NOTES
       The  PTHREAD_SCOPE_SYSTEM  contention  scope typically indicates that a
       user-space thread is bound directly to a single  kernel-scheduling  en-
       tity.   This  is the case on Linux for the obsolete LinuxThreads imple-
       mentation and the  modern  NPTL  implementation,  which  are  both  1:1
       threading implementations.

       POSIX.1  specifies that the default contention scope is implementation-
       defined.

SEE ALSO
       pthread_attr_init(3), pthread_attr_setaffinity_np(3),
       pthread_attr_setinheritsched(3), pthread_attr_setschedparam(3),
       pthread_attr_setschedpolicy(3), pthread_create(3), pthreads(7)

Linux man-pages 6.7               2023-10-31          pthread_attr_setscope(3)

Generated by dwww version 1.16 on Tue Dec 16 14:34:01 CET 2025.