Communicator e3000 MPE/iX Release 7.0 Express 1 (Software Release C.70.01) (30216-90328)
Chapter 6 161
Technical Articles
POSIX pthread (Draft 10) APIs
Support cancellation points for threads to become cancel aware: Until now, customers
could not asynchronously cancel threads on MPE/iX. With this release, threads can be
asynchronously cancelled, if desired, according to the POSIX 1003.c standard.
The following POSIX threads APIs are provided as a part of this solution:
pthread_atfork, pthread_sigmask, pthread_kill, pthread_mutex_init,
pthread_mutex_destroy, pthread_mutex_lock, pthread_mutex_trylock,
pthread_mutex_unlock, pthread_cond_init, pthread_cond_destroy, pthread_cond_signal,
pthread_cond_broadcast, pthread_cond_wait, pthread_cond_timedwait,
pthread_attr_setscope, pthread_getschedparam, pthread_setschedparam,
pthread_attr_init, pthread_attr_destroy, pthread_attr_setstacksize,
pthread_attr_getstacksize, pthread_create, pthread_join, pthread_detach, pthread_exit,
pthread_self, pthread_once, pthread_key_create, pthread_setspecific, pthread_ getspecific,
pthread_cancel, pthread_setcancelstate, pthread_setcanceltype, pthread_testcancel,
pthread_cleanup_push, pthread_cleanup_pop,pthread_continue, pthread_suspend, alarm,
pause, sleep.
The following POSIX signals have been implemented as a part of this solution:
kill, sigemptyset, sigfillset, sigaddset, sigdelset, sigismember, sigaction, sigprocmask,
sigpending, sigsuspend, sigwait, sigwaitinfo, sigtimedwait, sigqueue.
Highlights of solution
Some of the important enhancements provided for this solution are:
• "forking” from a threaded environment
• "exec" family of APIs work in multi-threaded environment
• Signals implemented in threaded environment as per POSIX Draft 10 specification
Benefits to Customers
As more and more POSIX applications are ported to MPE/iX, the need for POSIX
compliance on MPE/iX increases. In order to retain customers loyal to MPE/iX as well as
attract new customers, and in order to reduce the time required for porting onto MPE/iX, it
is desired that we provide all necessary APIs on MPE. This release provides
missing/non-functioning APIs of threads and signals
JAVA is one of the (many) middle-level applications needed for other e-services
applications. With HP e3000 moving towards e-solutions, it is necessary to e-enable
MPE/iX. Providing threads as part of FOS on MPE/iX is one step towards that goal.
Conclusion
A subset of POSIX pthreads (Draft 10) APIs is packaged as a part of FOS on this release of
MPE/iX. This enhancement enables applications wishing to use POSIX pthreads (Draft 10)
APIs to be ported from other platforms with minimal porting effort. New multi-threaded
applications can be written and executed on HP e3000 with minimal effort.