Unix/Linux Go Back    

Linux 2.6 - man page for pthread_attr_setscope (linux section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


       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(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.


       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.55 of the Linux man-pages project.  A description of the
       project, and information about reporting bugs, can be found at

Linux					    2013-04-19			 PTHREAD_ATTR_SETSCOPE(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 12:12 PM.