pthread_scope_options(5)pthread_scope_options(5)NAMEpthread_scope_options - list of external options to specify the sched‐
uling 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 speci‐
fied) 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
application 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 compatibil‐
ity. 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 explicitly
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 vari‐
able 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 pro‐
vided 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:
· Environmental variable settings take higher precedence over proper‐
ties file settings which in turn take higher precedence over compile
time options.
· 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 ALSOpthread(3T), pthread_attr_init(3T), pthread_attr_setscope(3T).
pthread_scope_options(5)