Sets the contention scope attribute of the specified thread attributes object.
1 – C Binding
#include <pthread.h> int pthread_attr_setscope ( pthread_attr_t *attr, int scope);
2 – Arguments
attr Address of the thread attributes object whose contention scope attribute is to be modified. scope New value for the contention scope attribute of the thread attributes object specified by attr.
3 – Description
This routine uses the value specified in the scope argument to set the contention scope attribute of the thread attributes object specified in the attr argument. When creating a thread, use a thread attributes object to specify nondefault values for thread attributes. The contention scope attribute specifies the set of threads with which a thread must compete for processing resources. The contention scope attribute specifies whether the new thread competes for processing resources only with other threads in its own process, called process contention scope, or with all threads on the system, called system contention scope. The Threads Library selects at most one thread to execute on each processor at any point in time. The Threads Library resolves the contention based on each thread's scheduling attributes (for example, priority) and scheduling policy (for example, round- robin). A thread created using a thread attributes object whose contention scope attribute is set to PTHREAD_SCOPE_PROCESS contends for processing resources with other threads within its own process that also were created with PTHREAD_SCOPE_PROCESS. It is unspecified how such threads are scheduled relative to either threads in other processes or threads in the same process that were created with PTHREAD_SCOPE_SYSTEM contention scope. A thread created using a thread attributes object whose contention scope attribute is set to PTHREAD_SCOPE_SYSTEM contends for processing resources with other threads in any process that also were created with PTHREAD_SCOPE_SYSTEM. Note that the value of the contention scope attribute of a particular thread attributes object does not necessarily correspond to the actual scheduling contention scope of any existing thread in your multithreaded program.
4 – Return Values
If an error condition occurs, this routine returns an integer value indicating the type of error. Possible return values are as follows: Return Description 0 Successful completion. [EINVAL] The value specified by attr is not a valid thread attributes value, or the value specified by scope is not valid. [ENOTSUP] An attempt was made to set the attribute to an unsupported value.
5 – Associated Routines
pthread_attr_destroy() pthread_attr_init() pthread_attr_getscope() pthread_attr_setinheritsched() pthread_create()