Determining the Legal Range For An Attribute
To determine the current limits for the priority, stack size, and time-slice quantum attributes, use the following RWThreadAttribute member functions:
*getMinStackSize() — This static function returns the bare-minimum stack size required by a thread that calls a null function. The Threading package automatically guarantees that the size of any stack allocated by the system is greater than this size.
Use this function when creating a user-defined stack. This function can only be called if the RW_THR_HAS_STACK_RESERVE_SIZE or RW_THR_HAS_USER_STACK macros are defined. If those macros have not been defined, an RWTHROperationNotSupported exception is produced.
*getMinPriority() — Returns the minimum priority value supported by the current contention scope and scheduling policy. This function can only be called if RW_THR_HAS_PRIORITY is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
*getMaxPriority() — Returns the maximum priority value supported by the current contention scope and scheduling policy. This function can only be called if RW_THR_HAS_PRIORITY is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
*getMinProcessScopePriority() — Returns the minimum priority value supported by process-scope threads under the current scheduling policy. This function can only be called when the contention scope value is RW_THR_PROCESS_SCOPE, or when the contention scope is RW_THR_SYSTEM_SCOPE and the current environment uses dual-priorities as indicated by the definition of the RW_THR_HAS_DUAL_PRIORITY macro. If those restrictions are not met, an RWTHROperationNotAvailable exception is thrown. In addition, this function can only be called if RW_THR_HAS_PRIORITY is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
*getMaxProcessScopePriority() — Returns the maximum priority value supported by process-scope threads under the current scheduling policy. This function can only be called when the contention scope value is RW_THR_PROCESS_SCOPE, or when the contention scope is RW_THR_SYSTEM_SCOPE and the current environment uses dual-priorities as indicated by the definition of the RW_THR_HAS_DUAL_PRIORITY macro. If those restrictions are not met, an RWTHROperationNotAvailable exception is thrown. In addition, this function can only be called if RW_THR_HAS_PRIORITY is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
*getMinSystemScopePriority() — Returns the minimum priority value supported by system-scope threads under the current scheduling policy. This function can only be called when the contention scope value is RW_THR_SYSTEM_SCOPE. If the value is not RW_THR_SYSTEM_SCOPE, an RWTHROperationNotAvailable exception is thrown. In addition, this function can only be called if RW_THR_HAS_PRIORITY is defined. If it is not define, an RWTHROperationNotSupported exception is produced.
*getMaxSystemScopePriority() — Returns the maximum priority value supported by system-scope threads under the current scheduling policy. This function can only be called when the contention scope value is RW_THR_SYSTEM_SCOPE. If the value is not RW_THR_SYSTEM_SCOPE, an RWTHROperationNotAvailable exception is thrown. In addition, this function can only be called if RW_THR_HAS_PRIORITY is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
*getMinTimeSliceQuantum() — Returns the minimum time-slice quantum value supported under the current scheduling policy. This function can only be called when the environment and scheduling policy support a time-slice quantum attribute. If the current policy does not give access to the time-slice quantum, an RWTHROperationNotAvailable exception is thrown. In addition, this function can only be called if RW_THR_HAS_TIME_SLICE_QUANTUM is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
*getMaxTimeSliceQuantum() — Returns the maximum time-slice quantum value supported under the current scheduling policy. This function can only be called when the environment and scheduling policy support a time-slice quantum attribute. If the current policy does not give access to the time-slice quantum, an RWTHROperationNotAvailable exception is thrown. In addition, this function can only be called if RW_THR_HAS_TIME_SLICE_QUANTUM is defined. If it is not defined, an RWTHROperationNotSupported exception is produced.
Once a thread has been created and is active, you can use a similar set of functions included in the RWThread and RWThreadSelf classes.
*getMinPriority()
*getMaxPriority()
*getMinProcessScopePriority()
*getMaxProcessScopePriority()
*getMinSystemScopePriority()
*getMaxSystemScopePriority()
*getMinTimeSliceQuantum()
*getMaxTimeSliceQuantum()
In addition to throwing the same exceptions as their RWThreadAttribute counterparts, these functions might also produce an RWTHRThreadNotActive exception if you attempt to query the current limits on a threaded runnable that does not possess an active thread.