home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | NOTES | SEE ALSO | COLOPHON


PTHREAD_ATTR_SETSCOPE(3)      Linux Programmer's Manual      PTHREAD_ATTR_SETSCOPE(3)

NAME         top

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

SYNOPSIS         top

       #include <pthread.h>

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

       Compile and link with -pthread.

DESCRIPTION         top

       The pthread_attr_setscope() function sets the contention scope attribute 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-2001 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 allocation
              domain (a group of one or more processors).  PTHREAD_SCOPE_SYSTEM
              threads are scheduled relative to one another 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-2001 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-2001 only requires that an implementation support one of these
       contention scopes, but permits both to be supported.  Linux supports
       PTHREAD_SCOPE_SYSTEM, but not PTHREAD_SCOPE_PROCESS.

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

RETURN VALUE         top

       On success, these functions return 0; on error, they return a non-zero error
       number.

ERRORS         top

       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.

CONFORMING TO         top

       POSIX.1-2001.

NOTES         top

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

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

SEE ALSO         top

       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)

COLOPHON         top

       This page is part of release 3.23 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

Linux                                 2008-10-24             PTHREAD_ATTR_SETSCOPE(3)