Age | Commit message (Collapse) | Author |
|
* global.c (PTHREAD_MUTEX_INITIALIZER): Move to pthread.h.
* pthread.h (PTHREAD_MUTEX_INITIALIZER): Define.
(pthread_mutex_t): Reimplement as a struct containing a valid
flag. If the flag is ever down upon entry to a mutex operation,
we call pthread_mutex_create() to initialise the object. This
fixes the problem of how to handle statically initialised objects
that can't call InitializeCriticalSection() due to their context.
* mutex.c (pthread_mutex_init): Set valid flag.
(pthread_mutex_destroy): Clear valid flag.
(pthread_mutex_lock): Check and handle the valid flag.
(pthread_mutex_unlock): Likewise.
(pthread_mutex_trylock): Likewise.
* tests/mutex3.c: New file; test for the static initialisation
macro. Passes.
|
|
* tests/mutex2.c: Test pthread_mutex_trylock(). Passes.
* tests/mutex1.c (main): Eliminate warning.
|
|
* tests/mutex1.c: New basic test for mutex functions (it passes).
|
|
* eyal1.c: New file; contributed by Eyal Lebedinsky
<eyal@eyal.emu.id.au>.
|
|
* exit2.c (func): Return a value.
(main): Call the right thread entry function.
|
|
|
|
|
|
* exit2.c (main): Fix size of pthread_t array.
|
|
|
|
* exit2.c: New file; test pthread_exit() harder.
|
|
* exit1.c: New file; test pthread_exit().
|
|
|