From cde63164e7f952ed0980fe62877796b81f749310 Mon Sep 17 00:00:00 2001 From: rpj Date: Thu, 7 Jun 2001 08:27:44 +0000 Subject: * 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. --- implement.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'implement.h') 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 -- cgit v1.2.3