GNAT under Solaris comes with an alternate tasking run-time library
based on POSIX threads — rts-pthread.
This run-time library has the advantage of being mostly shared across all
POSIX-compliant thread implementations, and it also provides under
Solaris 8 the
semantics that can be selected using the predefined pragma
Ceiling_Locking as the policy.
As explained above, the native run-time library is based on the Solaris thread
libthread) and is the default library.
When the Solaris threads library is used (this is the default), programs
compiled with GNAT can automatically take advantage of
and can thus execute on multiple processors.
The user can alternatively specify a processor on which the program should run
to emulate a single-processor system. The multiprocessor / uniprocessor choice
is made by
setting the environment variable
to one of the following:
0 .. Last_Proc
Last_Proc is equal to
_SC_NPROCESSORS_CONF - 1
_SC_NPROCESSORS_CONF is a system variable).