* - enable: Enable thread cancellation.
*/
#ifndef _di_f_thread_cancel_d_
+ #ifndef PTHREAD_CANCEL_ASYNCHRONOUS
+ #define PTHREAD_CANCEL_ASYNCHRONOUS 1
+ #endif // PTHREAD_CANCEL_ASYNCHRONOUS
+
+ #ifndef PTHREAD_CANCEL_DEFERRED
+ #define PTHREAD_CANCEL_DEFERRED 0
+ #endif // PTHREAD_CANCEL_DEFERRED
+
+ #ifndef PTHREAD_CANCEL_DISABLE
+ #define PTHREAD_CANCEL_DISABLE 1
+ #endif // PTHREAD_CANCEL_DISABLE
+
+ #ifndef PTHREAD_CANCEL_ENABLE
+ #define PTHREAD_CANCEL_ENABLE 0
+ #endif // PTHREAD_CANCEL_ENABLE
+
#define f_thread_cancel_asynchronous_d PTHREAD_CANCEL_ASYNCHRONOUS
#define f_thread_cancel_defer_d PTHREAD_CANCEL_DEFERRED
#define f_thread_cancel_disable_d PTHREAD_CANCEL_DISABLE
* - protect: Use protect protocol; use explicitly defined priority ceiling settings.
*/
#ifndef _di_f_thread_mutex_protocol_d_
+ #ifndef PTHREAD_PRIO_INHERIT
+ #define PTHREAD_PRIO_INHERIT 1
+ #endif // PTHREAD_PRIO_INHERIT
+
+ #ifndef PTHREAD_PRIO_NONE
+ #define PTHREAD_PRIO_NONE 0
+ #endif // PTHREAD_PRIO_NONE
+
+ #ifndef PTHREAD_PRIO_PROTECT
+ #define PTHREAD_PRIO_PROTECT 2
+ #endif // PTHREAD_PRIO_PROTECT
+
#define f_thread_mutex_protocol_inherit_d PTHREAD_PRIO_INHERIT
#define f_thread_mutex_protocol_none_d PTHREAD_PRIO_NONE
#define f_thread_mutex_protocol_protect_d PTHREAD_PRIO_PROTECT
* - stalled: The thread is considered to be in a stalled state.
*/
#ifndef _di_f_thread_mutex_robust_d_
+ #ifndef PTHREAD_MUTEX_ROBUST
+ #define PTHREAD_MUTEX_ROBUST 1
+ #endif // PTHREAD_MUTEX_ROBUST
+
+ #ifndef PTHREAD_MUTEX_STALLED
+ #define PTHREAD_MUTEX_STALLED 0
+ #endif // PTHREAD_MUTEX_STALLED
+
#define f_thread_mutex_robust_okay_d PTHREAD_MUTEX_ROBUST
#define f_thread_mutex_robust_stalled_d PTHREAD_MUTEX_STALLED
#endif // _di_f_thread_mutex_robust_d_
* - recursive: Recursive lock (uses a count on locks, mutexs become unlocked when count is 0).
*/
#ifndef _di_f_thread_mutex_type_d_
+ #ifndef PTHREAD_MUTEX_ERRORCHECK
+ #define PTHREAD_MUTEX_ERRORCHECK 2
+ #endif // PTHREAD_MUTEX_ERRORCHECK
+
+
+ #ifndef PTHREAD_MUTEX_RECURSIVE
+ #define PTHREAD_MUTEX_RECURSIVE 1
+ #endif // PTHREAD_MUTEX_RECURSIVE
+
+
+ #ifndef PTHREAD_MUTEX_NORMAL
+ #define PTHREAD_MUTEX_NORMAL 0
+ #endif // PTHREAD_MUTEX_NORMAL
+
#define f_thread_mutex_type_error_check_d PTHREAD_MUTEX_ERRORCHECK
#define f_thread_mutex_type_normal_d PTHREAD_MUTEX_RECURSIVE
#define f_thread_mutex_type_recursive_d PTHREAD_MUTEX_NORMAL
* - shared: The mutex is shared between any threads with memory access to the mutex object (even across processes).
*/
#ifndef _di_f_thread_process_d_
+ #ifndef PTHREAD_PROCESS_PRIVATE
+ #define PTHREAD_PROCESS_PRIVATE 0
+ #endif // PTHREAD_PROCESS_PRIVATE
+
+ #ifndef PTHREAD_PROCESS_SHARED
+ #define PTHREAD_PROCESS_SHARED 1
+ #endif // PTHREAD_PROCESS_SHARED
+
#define f_thread_process_private_d PTHREAD_PROCESS_PRIVATE
#define f_thread_process_shared_d PTHREAD_PROCESS_SHARED
#endif // _di_f_thread_process_d_
* - inherit: Use the scheduling from a parent thread or process.
*/
#ifndef _di_f_thread_schedule_d_
+ #ifndef PTHREAD_EXPLICIT_SCHED
+ #define PTHREAD_EXPLICIT_SCHED 1
+ #endif // PTHREAD_EXPLICIT_SCHED
+
+ #ifndef PTHREAD_INHERIT_SCHED
+ #define PTHREAD_INHERIT_SCHED 0
+ #endif // PTHREAD_INHERIT_SCHED
+
#define f_thread_schedule_explicit_d PTHREAD_EXPLICIT_SCHED
#define f_thread_schedule_inherit_d PTHREAD_INHERIT_SCHED
#endif // _di_f_thread_schedule_d_
* - system: The thread vies for resources with all processes on the system with the same scheduling domain.
*/
#ifndef _di_f_thread_scope_d_
+ #ifndef PTHREAD_SCOPE_PROCESS
+ #define PTHREAD_SCOPE_PROCESS 1
+ #endif // PTHREAD_SCOPE_PROCESS
+
+ #ifndef PTHREAD_SCOPE_SYSTEM
+ #define PTHREAD_SCOPE_SYSTEM 0
+ #endif // PTHREAD_SCOPE_SYSTEM
+
#define f_thread_scope_process_d PTHREAD_SCOPE_PROCESS
#define f_thread_scope_system_d PTHREAD_SCOPE_SYSTEM
#endif // _di_f_thread_scope_d_