Communicator e3000 MPE/iX Release 7.0 Express 1 (Software Release C.70.01) (30216-90328)
160 Chapter6
Technical Articles
POSIX pthread (Draft 10) APIs
POSIX pthread (Draft 10) APIs
by Ranjani Narayan
Commercial Systems Division
Introduction
Up until now, customers of the HP e3000 have been facing problems with the threads
implementation on MPE/iX. Though DCE did provide "workarounds" to get around these
problems, these workarounds were insufficient for multiple reasons. Firstly, the
workarounds applied only for DCE applications. Customers with JAVA and other
applications using POSIX implementation of threads did not have a solution. Also, these
workarounds resulted in performance problems, especially for high-end customers
implementing DCE. Hence a solution for these customers was to provide the necessary
POSIX pthread (Draft 10) APIs as part of FOS on MPE/iX. This article gives a technical
overview of the changes done to the various subsystems in order to provide a subset of
POSIX pthread (Draft 10) APIs.
Current Limitations
Prior to this release, in order to write a multi-threaded application, it was mandatory to
buy the DCE product on MPE/iX, since threads was packaged along with the DCE product.
This had the following disadvantages:
• Mandatory to buy the DCE product to use threads feature
• Dependency on the DCE product for enhancements, fixes and maintenance
• A logical part of the MPE/iX Operating System (threads) was made a part of a product
(DCE)
Solution Objectives
The main objectives of this solution are to provide threads as a part of FOS (make threads
a logical part of the MPE/iX Operating System), and to provide all the necessary POSIX
thread interfaces as per customer (JAVA) requirements. The other objectives are to provide
POSIX signals as per specification and to asynchronously cancel threads (when desired).
Overview of solution
Make available Draft 10 threads APIs as per customer needs: Prior to this release, the
thread APIs that were provided as part of DCE were Draft 4 compliant. With this release,
POSIX pthread APIs are provided as a part of FOS and are Draft 10 compliant (unless
explicitly stated). However, it is to be noted that the entire POSIX Draft 10 threads APIs
are not provided as a part of this solution. Only those APIs which are immediately needed
by JAVA and DCE are provided.
Interaction of POSIX signals with thread APIs on MPE/iX: Prior to this release, there have
been problem reports from customers regarding the functioning of signals in MPE/iX,
specifically with respect to threads. With this release, signals behave the way they should,
as stated in POSIX 1003.c standard.