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 OSF/1-specific support, behavior, and restrictions for these attributes. On OSF/1 only POSIX 1003.1c threads are supported. There are two different implementations of the POSIX 1003.1c library available on OSF/1 version 4.0, version 0 and version 1. Version 0 shipped with the original version of OSF/1 4.0 and this implementation was replaced with version 1 by an operating system patch ("f"). These two implementations have different capabilities, and are described separately.
Threads.h++ distinguishes between the two APIs using the PTHREAD_TEB_VERSION macro that is only defined in the pthread.h header file provided by the V0 implementation.
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.