diff options
author | rpj <rpj> | 1999-02-02 02:01:56 +0000 |
---|---|---|
committer | rpj <rpj> | 1999-02-02 02:01:56 +0000 |
commit | cc29ad943903e9b8dba96cd978cb126f79f73e38 (patch) | |
tree | 17a310f2fb26c829acbecf498453531637bf863c /mutex.c | |
parent | 6237335fec273ac2b00c32609a8eef91c6ec7473 (diff) |
Mods to compile under Mingw32 egcs.
Tue Feb 2 18:07:43 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* implement.h: Add #include <pthread.h>.
Change sem_t to _pthread_sem_t.
Various patches by Kevin Ruland <Kevin.Ruland@anheuser-busch.com>
* signal.c (pthread_sigmask): Add and modify casts.
Reverse LHS/RHS bitwise assignments.
* pthread.h: Remove #include <semaphore.h>.
(_PTHREAD_ATTR_VALID): Add cast.
(struct pthread_t_): Add sigmask element.
* dll.c: Add "extern C" for DLLMain.
(DllMain): Add cast.
* create.c (pthread_create): Set sigmask in thread.
* condvar.c: Remove #include. Change sem_* to _pthread_sem_*.
* attr.c: Changed #include.
* Makefile.in: Additional targets and changes to build the library
as a DLL.
Fri Jan 29 11:56:28 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* Makefile.in (OBJS): Add semaphore.o to list.
* semaphore.c (_pthread_sem_timedwait): Move from private.c.
Rename sem_* to _pthread_sem_*.
* pthread.h (pthread_cond_t): Change type of sem_t.
_POSIX_SEMAPHORES no longer defined.
* semaphore.h: Contents moved to implement.h.
Removed from source tree.
* implement.h: Add semaphore function prototypes and ename all
functions to prepend '_pthread_'. They are
now private to the pthreads-win32 implementation.
* private.c: Change #warning.
Move _pthread_sem_timedwait() to semaphore.c.
* cleanup.c: Change #warning.
* misc.c: Remove #include <errno.h>
* pthread.def: Cleanup CVS merge conflicts.
* global.c: Ditto.
* ChangeLog: Ditto.
* cleanup.c: Ditto.
Diffstat (limited to 'mutex.c')
-rw-r--r-- | mutex.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -42,20 +42,20 @@ _mutex_check_need_init(pthread_mutex_t *mutex) * the number of processors + 1. * * We need to maintain the following per-mutex state independently: - * - mutex staticinit (true iff static mutex and still + * - mutex staticinit (true iff mutex is static and still * needs to be initialised) * - mutex valid (false iff mutex has been destroyed) * - * For example, a mutex initialised by PTHREAD_MUTEX_INITIALIZER - * in this implementation will be valid but uninitialised until the thread - * attempts to lock it. It can also be destroyed (made invalid) before - * ever being locked. + * For example, in this implementation a mutex initialised by + * PTHREAD_MUTEX_INITIALIZER will be 'valid' but uninitialised until + * the thread attempts to lock it. It can also be destroyed (made invalid) + * before ever being locked. */ EnterCriticalSection(&_pthread_mutex_test_init_lock); /* - * We got here because staticinit tested true. - * Check staticinit again inside the critical section + * We got here because staticinit tested true, possibly under race + * conditions. Check staticinit again inside the critical section * and only initialise if the mutex is valid (not been destroyed). * If a static mutex has been destroyed, the application can * re-initialise it only by calling pthread_mutex_init() |