To give you control over thread scheduling and stack management, Threads.h++ defines a set of attributes that are used when a thread is created to define or control the various thread scheduling and stack allocation behaviors.
The purpose of the following sections is to describe the Solaris-specific support, behavior, and restrictions for these attributes. On Solaris, the Solaris and POSIX 1003.1C thread APIs are supported. While the POSIX API simply wraps the underlying Solaris thread library, it does not provide access to the same capabilities as is available from the native library. When possible, you should configure Threads.h++ to use the native library as this will give you the greatest level of control over your threads. According to Sun, you can mix these APIs within a single application, but this requires a complicated build process, and is not recommended. See the Threads.h++ "readme" file, thrrread.doc, for more information.
NOTE: Once you begin using thread attributes, you risk compromising the cross-platform portability of your code.
Problems with portability arise largely because scheduling and stack allocation policies tend to vary significantly between each of the environments supported by Threads.h++. Rogue Wave has made every attempt to alleviate or hide these differences without prohibiting access to the platform-specific controls that some developers will require. It is up to you to carefully review and understand the implementation differences between each platform that you plan to support.
Threads.h++ provides numerous feature test macros and functions that allow you to determine, at compile or run-time, which attributes and attribute values are supported by this environment. See the Threads.h++ User's Guide for a complete description of these tests.
It is important to note that the member functions used to manipulate attributes are always present, regardless of whether or not the current environment supports those attributes.
©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.