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.