pthread_scope_options(5) File Formats Manual pthread_scope_options(5)
NAME
pthread_scope_options - list of external options to specify the scheduling contention scope of threads
DESCRIPTION
From HP-UX release 11i version 2 and forward, HP-UX supports the "MxN" thread model. With MxN model, application has the flexibility of
selecting the type of thread (determined by the contention scope specified) in the application. Based on the contention scope, there are
two types of threads, threads and threads.
can be used to initialize the attribute object. Subsequently, can be used to set the scope explicitly. If is not used, the default con-
tention scope is considered.
The default contention scope will be
Some external options are provided to control the contention scope without modifying the application source. This is useful for the appli-
cation developer to check the performance of the application with multiple thread models before deciding on the thread model appropriate
for a particular application.
The external scope options can be specified in three different ways:
1. At compile time.
2. In Properties file.
3. Environment variables.
1. Compile Time Options
The options provided at compile time are:
Forces the system scope irrespective of scope
specified in the attribute for thread creation.
Forces the process scope irrespective of scope
specified in the attribute for thread creation.
If contention scope is set by
that scope is considered while creating a thread. Otherwise, is considered.
The compile time option can be specified with or by defining the same before including in application source files. If none of the above
mentioned options is specified, system scope threads will be created unless specifies otherwise.
compile option is similar to and is provided for backward compatibility. However, if any of the above mentioned new compile options are
used, will not have any effect.
2. Properties File Options
Users are given the flexibility to use a properties file to specify various tunables for the library, to help in optimizing their applica-
tions without making any source code changes. The default path name of the properties file is Note that this file will have to be explic-
itly created by the user. If the application wants the pthread library to read the tunables from the properties file, the environment
variable has to be set to 1, on, or ON. The user, through the environment variable can specify a different location for the properties
file.
In the properties file, lines beginning with are comments. For non-comment lines, the first and second words are extracted. The first
word is expected to be the name of one of the tunables, and the second word is expected to be the value of that variable.
The properties file supports following tunables to control the scope of threads externally:
Forces the system scope irrespective of scope
specified in the attribute for thread creation.
Forces the process scope irrespective of scope
specified in the attribute for thread creation.
If contention scope is set by
that scope is considered while creating a thread. Otherwise, is considered.
If contention scope is set by
that scope is considered while creating a thread. Otherwise, is considered.
The properties file options and supported on HP-UX 11i v2 will be provided for backward compatibility. However, if any of the above men-
tioned new properties file options are used, and will not have any effect.
3. Environmental Variables
There are a set of environment variables which when set can override the scope of the threads specified in the application. These environ-
ment variables should be set before starting the application to run.
The environmental variables supported for controlling the scope are:
Forces the system scope irrespective of scope
specified in the attribute for thread creation.
Forces the process scope irrespective of scope
specified in the attribute for thread creation.
If contention scope is set by
that scope is considered while creating a thread. Otherwise, is considered.
If contention scope is set by
that scope is considered while creating a thread. Otherwise, is considered.
environment variable that was supported on HP-UX 11i v2 will continue to be supported and will have the same effect as However, if any of
the above mentioned new environment variables are set, will not have any effect.
Precedence if multiple options are specified:
o Environmental variable settings take higher precedence over properties file settings which in turn take higher precedence over compile
time options.
o If more than one setting is done in one of the ways specified above, force option will take higher precedence over default option and
the scope set by System scope takes more precedence than process scope. The contention scope set by takes precedence over external
scope setting for default scope process and default scope system.
EXAMPLES
1. The following settings are done in properties file:
and
should be done for the properties file to be read by the pthread library.
If is not set, will be used.
With these settings, will take the precedence, and system scope will be forced for all thread creations.
2. If the following options are defined at compile time with or defined in one of the application header files: and
will take higher precedence, and system scope threads will be forced even when is used to specify the process scope.
3. If the following environmental variables are set (say, using sh-posix):
will take higher precedence, and system scope is forced for all the threads created in the process.
4. If the following environmental variables are set (say, using sh-posix):
will take higher precedence, and process scope is forced for all the threads created in the process.
SEE ALSO
pthread(3T), pthread_attr_init(3T), pthread_attr_setscope(3T).
pthread_scope_options(5)