H06.15 Release Version Update Compendium

spt_writevz()
Although this behavior is not POSIX compliant, it allows for improved performance, and
this behavior is the same for both the existing thread-aware and thread-aware non-blocking
OSS functions and the new spt_*z functions.
Migration
The Standard Posix Threads library provides two new preprocessor directives for use by
multithreaded applications:
SPT_THREAD_AWARE_XNONBLOCK
SPT_THREAD_AWARE_PRAGMA_ XNONBLOCK
Multithreaded applications must use one of these directives and must be compiled to use the
thread-aware I/O APIs. When these directives are used, OSS I/O calls get mapped to spt_*z
functions.
To use these new thread-aware APIs, multithreaded applications must be recompiled to use the
new version of the Standard POSIX Threads library. Because threads will no longer block the
entire process for certain regular file operations, the interactions between threads may be different
when using the new version of the Standard POSIX Threads library. As a result, multithreaded
programs might need to be modified to improve the thread interactions and to take full advantage
of the thread-aware I/O operations.
For example, if applications depend on the process blocking behavior of regular file I/O APIs,
then you might need to modify applications to remove such dependencies. For example, if threads
in an application use the same buffer for read() and write() on a regular file, an application that
uses the spt_*z functions can enter a race condition (with unpredictable behavior) because read()
and write() block only the thread and not the entire process: Another thread might use the buffer
while the first file operation is using the same buffer.
Fallback
Multithreaded applications that were recompiled to use the new thread-aware APIs must be
modified and recompiled to run on a system running an RVU that does not support these new
APIs.
DP2 Limits Increase
The maximum number of concurrent file opens per disk volume allowed by DP2 is increased
from 32k (32,767) to to 64k (65, 279). This change affects FUP, Measure, SQL/MX, and other
products that use DP2 for I/O operations.
12 Operating System