summaryrefslogtreecommitdiff
path: root/pthread.h
diff options
context:
space:
mode:
Diffstat (limited to 'pthread.h')
-rw-r--r--pthread.h34
1 files changed, 22 insertions, 12 deletions
diff --git a/pthread.h b/pthread.h
index 9975eb1..f2f6323 100644
--- a/pthread.h
+++ b/pthread.h
@@ -519,20 +519,30 @@ extern "C"
#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX
# include <sys/types.h>
#else
-typedef struct pthread_t_ * volatile pthread_t;
-typedef struct pthread_attr_t_ * volatile pthread_attr_t;
+/*
+ * Generic handle type - intended to extend uniqueness beyond
+ * that available with a simple pointer. It should scale for either
+ * IA-32 or IA-64.
+ */
+typedef struct {
+ void * p; /* Pointer to actual object */
+ unsigned int x; /* Extra information - reuse count etc */
+} ptw32_handle_t;
+
+typedef ptw32_handle_t pthread_t;
+typedef struct pthread_attr_t_ * pthread_attr_t;
typedef struct pthread_once_t_ pthread_once_t;
-typedef struct pthread_key_t_ * volatile pthread_key_t;
-typedef struct pthread_mutex_t_ * volatile pthread_mutex_t;
-typedef struct pthread_mutexattr_t_ * volatile pthread_mutexattr_t;
-typedef struct pthread_cond_t_ * volatile pthread_cond_t;
-typedef struct pthread_condattr_t_ * volatile pthread_condattr_t;
+typedef struct pthread_key_t_ * pthread_key_t;
+typedef struct pthread_mutex_t_ * pthread_mutex_t;
+typedef struct pthread_mutexattr_t_ * pthread_mutexattr_t;
+typedef struct pthread_cond_t_ * pthread_cond_t;
+typedef struct pthread_condattr_t_ * pthread_condattr_t;
#endif
-typedef struct pthread_rwlock_t_ * volatile pthread_rwlock_t;
-typedef struct pthread_rwlockattr_t_ * volatile pthread_rwlockattr_t;
-typedef struct pthread_spinlock_t_ * volatile pthread_spinlock_t;
-typedef struct pthread_barrier_t_ * volatile pthread_barrier_t;
-typedef struct pthread_barrierattr_t_ * volatile pthread_barrierattr_t;
+typedef struct pthread_rwlock_t_ * pthread_rwlock_t;
+typedef struct pthread_rwlockattr_t_ * pthread_rwlockattr_t;
+typedef struct pthread_spinlock_t_ * pthread_spinlock_t;
+typedef struct pthread_barrier_t_ * pthread_barrier_t;
+typedef struct pthread_barrierattr_t_ * pthread_barrierattr_t;
/*
* ====================