A SERVICE OF

logo

Programming Release Notes
5.35 POSIX Threads Library
compliance of the C RTL and threads header les has been improved. As a
result, PTHREAD.H no longer provides the
timespec_t
typedef.
There may be some applications whose compilations require the
timespec_t
typedef, and which erroneously rely on PTHREAD.H to provide it—either
directly or indirectly (for example, by using TIS.H). If such an application
source module is recompiled on an OpenVMS Version 7.3-2 system, you may
get C compiler diagnostic messages listing
timespec_t
as an unknown symbol
or type. To correct such application source modules, either replace the uses
of
timespec_t
with structure
timespec
, or include the C RTL header le
TIMERS.H before the rst use of the
timespec_t
symbol.
If your application build environment uses a private copy of any older C
RTL or threads header les or an extract of them that includes the
timespec
structure or the
timespec_t
typedef (both of which are not recommended),
you may see an additional compilation error. The compiler may display
messages stating that the
timespec
structure is redened or dened twice. In
such a case, revert to using the system-supplied C RTL and threads header
les, or replace the private extracts involving the
timespec
structure with an
inclusion of the system-supplied TIME.H header le.
5.35.8 New Priority Adjustment Algorithm
V7.3-2
As of OpenVMS Version 7.3-2, the adaptive thread scheduling behavior that is
described in the Guide to the POSIX Threads Library has been implemented with
a new priority adjustment algorithm. In some cases, the new algorithm should
help avoid problems that can arise when throughput-policy threads of different
priorities share synchronization objects. Priority adjustment can also improve
application throughput and overall system utilization. Priority adjustment of
threads with throughput scheduling policy is automatic and transparent.
5.35.9 Process Dumps
V7.3
If the POSIX Threads Library detects an uncorrectable serious problem at
run time (such as data structures that have been damaged by data corruption
somewhere in the application), the library may terminate the running image.
During termination, the library may trigger creation of a process dump le (which
can subsequently be used to diagnose the failure, by way of ANALYZE/PROCESS_
DUMP). The size of such a process dump le depends on the size of the process’s
address space at the time of the failure and can be quite large.
5.35.10 Dynamic CPU Conguration Changes
V7.3
Starting in OpenVMS Version 7.3, the POSIX Threads Library is sensitive to
dynamic changes in the number of CPUs that are congured for a running
multiprocessor Alpha system. When use of multiple kernel threads is enabled
(by way of the LINK/THREADS_ENABLE qualier or the THREADCP command
verb) for an image, the POSIX Threads Library monitors the apparent parallelism
of an application and creates multiple kernel threads up to the number of CPUs
available. Each kernel thread can be scheduled by the OpenVMS executive to
execute on a separate CPU and, therefore, can execute simultaneously.
Programming Release Notes 5–37