Setting Attribute Values
Use the following functions to set the corresponding attribute value:
*setConcurrencyPolicy(RWConcurrencyPolicy)
*setContentionScope(RWContentionScope)
*setInheritancePolicy(RWInheritancePolicy)
*setPriority(RWPriority)
*setProcessScopePriority(RWPriority)
*setSchedulingPolicy(RWSchedulingPolicy)
*setStackCommitSize(size_t)
*setStackReserveSize(size_t)
*setStartPolicy(RWStartPolicy)
*setSystemScopePriority(RWPriority)
*setTimeSliceQuantum(unsigned long)
*setUserStack(void* address, size_t size)
These functions throw the following exceptions:
*RWTHROperationNotSupported if the attribute is not recognized or supported by the current environment
*RWTHROperationNotAvailable if the specified attribute value is not supported by the current environment or is not allowed under current circumstances.
*RWTHRBoundsError if the specified attribute value is invalid or falls outside the current legal range defined for that attribute.
The process-scope and system-scope priority functions can be substituted for setPriority(RWPriority) and vice-versa, as long as the appropriate contention scope has been defined.
Once a thread has been created and is active, you can use the following RWThread and RWThreadSelf functions to set the corresponding thread attribute value:
*setPriority(RWPriority)
*setProcessScopePriority(RWPriority)
*setSchedulingPolicy(RWSchedulingPolicy)
*setSystemScopePriority(RWPriority)
*setTimeSliceQuantum(unsigned long)
In addition to the exceptions produced by their RWThreadAttribute counterparts, these functions can throw an RWTHRThreadNotActive exception if the threaded runnable instance being manipulated does not have an active thread.