/* $Id$ * ============================================================================ * * = LIBRARY * pace * * = FILENAME * pace/pthread.h * * = AUTHOR * Luther Baker * * ============================================================================ */ #ifndef PACE_PTHREAD_H #define PACE_PTHREAD_H #include "pace/config/defines.h" #if (PACE_HAS_POSIX) # include "pace/posix/pthread.h" #elif (PACE_VXWORKS) # include "pace/vxworks/pthread.h" #elif (PACE_WIN32) # include "pace/win32/pthread.h" #endif #if defined (PACE_HAS_CPLUSPLUS) extern "C" { #endif /* PACE_HAS_CPLUSPLUS */ /** PACE's implementation of the POSIX function pthread_atfork. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 3.1.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void)); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_destroy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_destroy (pace_pthread_attr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getdetachstate. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getdetachstate (const pace_pthread_attr_t * attr, int * detachstate); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getinheritsched. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getinheritsched (const pace_pthread_attr_t * attr, int * inheritsched); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getschedparam. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getschedparam (const pace_pthread_attr_t * attr, pace_sched_param * param); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getschedpolicy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr, int * policy); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getscope. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getscope (const pace_pthread_attr_t * attr, int * contentionscope); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getstackaddr. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getstackaddr (const pace_pthread_attr_t * attr, void ** stackaddr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_getstacksize. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_getstacksize (const pace_pthread_attr_t * attr, size_t * stacksize); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_init. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_init (pace_pthread_attr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setdetachstate. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setdetachstate (pace_pthread_attr_t * attr, int detachstate); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setinheritsched. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setinheritsched (pace_pthread_attr_t * attr, int inheritsched); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setschedparam. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setschedparam (pace_pthread_attr_t * attr, const pace_sched_param * param); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setschedpolicy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setschedpolicy (pace_pthread_attr_t * attr, int policy); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setscope. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setscope (pace_pthread_attr_t * attr, int contentionscope); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setstackaddr. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setstackaddr (pace_pthread_attr_t * attr, void * stackaddr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_attr_setstacksize. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_attr_setstacksize (pace_pthread_attr_t * attr, size_t stacksize); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cancel. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 18.2.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cancel (pace_pthread_t thread); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cleanup_push. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 18.2.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) # define pace_pthread_cleanup_push(routine, arg) \ pthread_cleanup_push (routine, arg) #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cleanup_pop. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 18.2.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) # define pace_pthread_cleanup_pop(execute) \ pthread_cleanup_pop (execute) #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ # define PACE_PTHREAD_COND_INITIALIZER PTHREAD_COND_INITIALIZER /** PACE's implementation of the POSIX function pthread_cond_broadcast. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cond_broadcast (pace_pthread_cond_t * cond); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cond_destroy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cond_destroy (pace_pthread_cond_t * cond); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cond_init. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cond_init (pace_pthread_cond_t * cond, const pace_pthread_condattr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cond_signal. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cond_signal (pace_pthread_cond_t * cond); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cond_timedwait. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.4. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cond_timedwait (pace_pthread_cond_t * cond, pace_pthread_mutex_t * mutex, const pace_timespec * abstime); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_cond_wait. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.4. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_cond_wait (pace_pthread_cond_t * cond, pace_pthread_mutex_t * mutex); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_condattr_destroy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_condattr_destroy (pace_pthread_condattr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_condattr_getpshared. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_condattr_getpshared (const pace_pthread_condattr_t * attr, int * pshared); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_condattr_init. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_condattr_init (pace_pthread_condattr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_condattr_setpshared. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.4.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_condattr_setpshared (pace_pthread_condattr_t * attr, int pshared); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_create. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_create (pace_pthread_t * thread, const pace_pthread_attr_t * attr, void * (*start_routine) (void*), void * arg); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_detach. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.4. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_detach (pace_pthread_t thread); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_equal. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.7. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_equal (pace_pthread_t t1, pace_pthread_t t2); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_exit. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.5. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE void pace_pthread_exit (void * value_ptr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_getschedparam. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.2.5. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_getschedparam (pace_pthread_t thread, int * policy, pace_sched_param * param); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_getspecific. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 17.1.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE void * pace_pthread_getspecific (pace_pthread_key_t key); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_join. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_join (pace_pthread_t thread, void ** value_ptr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_key_create. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 17.1.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_key_create (pace_pthread_key_t * key, void (*destructor)(void*)); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_key_delete. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 17.1.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_key_delete (pace_pthread_key_t key); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_kill. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 3.3.10. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_kill (pace_pthread_t thread, int sig); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ # define PACE_PTHREAD_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER /** PACE's implementation of the POSIX function pthread_mutex_destroy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_destroy (pace_pthread_mutex_t * mutex); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutex_getprioceiling. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.6.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_getprioceiling (pace_pthread_mutex_t * mutex, int * prioceiling); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutex_init. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_init (pace_pthread_mutex_t * mutex, const pace_pthread_mutexattr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutex_lock. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_lock (pace_pthread_mutex_t * mutex); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutex_setprioceiling. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.6.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_setprioceiling (pace_pthread_mutex_t * mutex, int prioceiling, int * old_ceiling); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutex_trylock. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_trylock (pace_pthread_mutex_t * mutex); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutex_unlock. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.3. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutex_unlock (pace_pthread_mutex_t * mutex); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_destroy. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_destroy (pace_pthread_mutexattr_t * sttr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_getprioceiling. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.6.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_getprioceiling (pace_pthread_mutexattr_t * attr, int * prioceiling); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_getprotocol. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.6.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_getprotocol (const pace_pthread_mutexattr_t * attr, int * protocol); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_setprioceiling. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.6.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_setprioceiling (pace_pthread_mutexattr_t * attr, int prioceiling); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_setprotocol. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.6.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr, int protocol); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_getpshared. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_getpshared (const pace_pthread_mutexattr_t * attr, int * pshared); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_init. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_init (pace_pthread_mutexattr_t * attr); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_mutexattr_setpshared. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 11.3.1. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr, int pshared); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_once. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.8. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_once (pace_pthread_once_t * once_control, void (*void_routine) (void)); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ # define PACE_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT /** PACE's implementation of the POSIX function pthread_self. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 16.2.6. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE pace_pthread_t pace_pthread_self (); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_setcancelstate. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 18.2.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_setcancelstate (int state, int * oldstate); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_setcanceltype. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 18.2.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_setcanceltype (int type, int * oldtype); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_setschedparam. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 13.5.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_setschedparam (pace_pthread_t thread, int policy, const pace_sched_param * param); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_setspecific. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 17.1.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_setspecific (pace_pthread_key_t key, const void * value); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_sigmask. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 3.3.5. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE int pace_pthread_sigmask (int how, const pace_sigset_t * set, pace_sigset_t * oset); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ /** PACE's implementation of the POSIX function pthread_testcancel. See POSIX standard (Internation Standard ISO/IEC 9945-1:1996; IEEE Std 1003.1, 1996 Edition), Section 18.2.2. */ #if (PACE_HAS_POSIX_NONUOF_FUNCS) PACE_INLINE void pace_pthread_testcancel (); #endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ #if defined (PACE_HAS_INLINE) # if (PACE_HAS_POSIX) # include "pace/posix/pthread.inl" # elif (PACE_VXWORKS) # include "pace/vxworks/pthread.inl" # elif (PACE_WIN32) # include "pace/win32/pthread.inl" # endif #endif /* PACE_HAS_INLINE */ #if defined (PACE_HAS_CPLUSPLUS) } #endif /* PACE_HAS_CPLUSPLUS */ #endif /* PACE_PTHREAD_H */