DECthreads contains four application programming interfaces (APIs):
With Version 7.0 of the OpenVMS operating system, the DECthreads library (PTHREAD$RTL.EXE) implements the POSIX 1003.1c standard interface, as approved by the IEEE standards board in June 1995 (IEEE Std 1003.1c-1995, POSIX System Application Program Interface). The new POSIX (pthread) interface supported with DECthreads is OpenVMS's most portable, efficient, and powerful programming interface for a multithreaded environment. These interfaces are defined by the C language header file "pthread.h".
The OpenVMS Version 7.0 operating system includes the Thread Independent Services (tis) application programming interface (CMA$TIS_SHR.EXE). tis provides services that assist with the development of thread-safe APIs. Thread synchronization can involve significant run-time cost, which is undesirable in the absence of threads. tis enables you to build thread-safe APIs that are efficient in the nonthreaded environment, yet provide the necessary synchronization in the threaded environment. When DECthreads is not active within the process, tis executes only the minimum steps necessary: code running in a nonthreaded environment is not burdened by the run-time synchronization that is necessary when the same code is run in a threaded environment. When DECthreads is active, the tis functions provide the necessary synchronization for thread safety.
The cma interface of DECthreads will be obsolete in a future release. Obsolescence means that this API will always exist in the OpenVMS operating system and will be supported, but will no longer be documented or enhanced. It is recommended that you port your cma-based application to the IEEE Std 1003.1c-1995, POSIX System Application Program Interface provided by DECthreads.
Two variants of the POSIX 1003.4a Draft 4 interface (a very early draft of POSIX 1003.1c) were supplied with earlier versions of DECthreads. One variant directly supported the Posix 1003.4a Draft 4 interfaces, and the other modified them by raising exceptions to report errors (as does the cma interface).
Both of these interfaces are being retired, and will be removed in a future release. Programs using these interfaces should be modified to use the IEEE Std 1003.1c-1995, POSIX System Application Program Interface provided by DECthreads. A compatibility mode for the POSIX 1003.4a Draft 4 APIs has been provided in this release to help ease migration. This compatibility mode will be removed in a future release.