:: RootR ::  Hosting Order Map Login   Secure Inter-Network Operations  
pthread_attr_setscope(3) - phpMan

Command: man perldoc info search(apropos)  

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

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

       #include <pthread.h>

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

       Compile and link with -pthread.

       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:

              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.

              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 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 set‐
       ting made by pthread_attr_setscope() to have effect when  calling  pthread_create(3),  the
       caller  must use pthread_attr_setinheritsched(3) to set the inherit-scheduler attribute of
       the attributes object attr to PTHREAD_EXPLICIT_SCHED.

       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.

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

       pthread_attr_setscope() can fail with the following errors:

       EINVAL An invalid value was specified in scope.

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

   Multithreading (see pthreads(7))
       The pthread_attr_setscope() and pthread_attr_getscope() functions are thread-safe.


       The  PTHREAD_SCOPE_SYSTEM contention scope typically indicates that a user-space 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.

       pthread_attr_init(3), pthread_attr_setaffinity_np(3), pthread_attr_setinheritsched(3),
       pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3), pthread_create(3),

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

Linux                                       2014-05-28                   PTHREAD_ATTR_SETSCOPE(3)

rootr.net - man pages