summaryrefslogtreecommitdiff
path: root/implement.h
diff options
context:
space:
mode:
authorrpj <rpj>2001-06-07 08:27:44 +0000
committerrpj <rpj>2001-06-07 08:27:44 +0000
commitcde63164e7f952ed0980fe62877796b81f749310 (patch)
treeb20099e176283639e7a62f720e7c137d9c16fa8e /implement.h
parent544c9bdc635a5ce92418ee58e71cf54ba50a60a1 (diff)
* semaphore.h (sem_t): Is now an opaque pointer;
moved actual definition to implement.h. * implement.h (sem_t_): Move here from semaphore.h; was the definition of sem_t. * semaphore.c: Wherever necessary, changed use of sem from that of a pointer to a pointer-pointer; added extra checks for a valid sem_t; NULL sem_t when it is destroyed; added extra checks when creating and destroying sem_t elements in the NEED_SEM code branches; changed from using a pthread_mutex_t ((*sem)->mutex) to CRITICAL_SECTION ((*sem)->sem_lock_cs) in NEED_SEM branches for access serialisation.
Diffstat (limited to 'implement.h')
-rw-r--r--implement.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/implement.h b/implement.h
index 1b57b60..9518f9e 100644
--- a/implement.h
+++ b/implement.h
@@ -114,11 +114,21 @@ struct pthread_attr_t_ {
/*
* ====================
* ====================
- * Mutexes and Condition Variables
+ * Semaphores, Mutexes and Condition Variables
* ====================
* ====================
*/
+#ifdef NEED_SEM
+typedef struct {
+ unsigned int value;
+ CRITICAL_SECTION sem_lock_cs;
+ HANDLE event;
+} sem_t_;
+#else /* NEED_SEM */
+typedef HANDLE sem_t_;
+#endif /* NEED_SEM */
+
#define PTW32_OBJECT_AUTO_INIT ((void *) -1)
#define PTW32_OBJECT_INVALID NULL