diff options
| author | dannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-01 23:18:54 +0000 |
|---|---|---|
| committer | dannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-01 23:18:54 +0000 |
| commit | cd98a805697edbf15079aa96e4eeb7c75841ed90 (patch) | |
| tree | c0cf7a4d0974baae80291d2385965871d0eb1773 | |
| parent | 147b9f521ac0f57b49494b03d75b93a243dc24f1 (diff) | |
| download | ppe42-gcc-cd98a805697edbf15079aa96e4eeb7c75841ed90.tar.gz ppe42-gcc-cd98a805697edbf15079aa96e4eeb7c75841ed90.zip | |
* gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
not Windows 'DWORD'.
(__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
(__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
(__gthr_win32_recursive_mutex_init_function): Add prototype for
__GTHREAD_HIDE_WIN32API case..
(__gthr_win32_recursive_mutex_lock): Likewise.
(__gthr_win32_recursive_mutex_trylock): Likewise.
(__gthr_win32_recursive_mutex_unlock): Likewise.
(__gthread_recursive_mutex_init_function); Add definition for
__GTHREAD_HIDE_WIN32API case.
(__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
* config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
call to InterlockedDecrement.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86939 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 18 | ||||
| -rw-r--r-- | gcc/config/i386/gthr-win32.c | 2 | ||||
| -rw-r--r-- | gcc/gthr-win32.h | 21 |
3 files changed, 36 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6341a0d0414..47a00dcf14e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2004-09-01 Wu Yongwei <adah@sh163.net> + Danny Smith <dannysmith@users.sourceforge.net> + + * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long', + not Windows 'DWORD'. + (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo. + (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise. + (__gthr_win32_recursive_mutex_init_function): Add prototype for + __GTHREAD_HIDE_WIN32API case.. + (__gthr_win32_recursive_mutex_lock): Likewise. + (__gthr_win32_recursive_mutex_trylock): Likewise. + (__gthr_win32_recursive_mutex_unlock): Likewise. + (__gthread_recursive_mutex_init_function); Add definition for + __GTHREAD_HIDE_WIN32API case. + (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement. + * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct + call to InterlockedDecrement. + 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * tree-tailcall.c (find_tail_calls): Also fail is statement has diff --git a/gcc/config/i386/gthr-win32.c b/gcc/config/i386/gthr-win32.c index 6fb3cf8853d..d6cd7a98796 100644 --- a/gcc/config/i386/gthr-win32.c +++ b/gcc/config/i386/gthr-win32.c @@ -203,7 +203,7 @@ __gthr_win32_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) } else if (mutex->owner == me) { - InterlockedDecrement (&mx->lock_idx); + InterlockedDecrement (&mutex->counter); ++(mutex->depth); } else if (WaitForSingleObject (mutex->sema, INFINITE) == WAIT_OBJECT_0) diff --git a/gcc/gthr-win32.h b/gcc/gthr-win32.h index 3e1aac7fce0..49ea54081c8 100644 --- a/gcc/gthr-win32.h +++ b/gcc/gthr-win32.h @@ -346,15 +346,16 @@ typedef struct { typedef struct { long counter; long depth; - DWORD owner; + unsigned long owner; void *sema; } __gthread_recursive_mutex_t; #define __GTHREAD_ONCE_INIT {0, -1} #define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function #define __GTHREAD_MUTEX_INIT_DEFAULT {-1, 0} -#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_mutex_init_function -#define __GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT {-1, 0} +#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION \ + __gthread_recursive_mutex_init_function +#define __GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT {-1, 0, 0, 0} #if __MINGW32_MAJOR_VERSION >= 1 || \ (__MINGW32_MAJOR_VERSION == 0 && __MINGW32_MINOR_VERSION > 2) @@ -414,6 +415,12 @@ extern void __gthr_win32_mutex_init_function (__gthread_mutex_t *); extern int __gthr_win32_mutex_lock (__gthread_mutex_t *); extern int __gthr_win32_mutex_trylock (__gthread_mutex_t *); extern int __gthr_win32_mutex_unlock (__gthread_mutex_t *); +extern void + __gthr_win32_recursive_mutex_init_function (__gthread_recursive_mutex_t *); +extern int __gthr_win32_recursive_mutex_lock (__gthread_recursive_mutex_t *); +extern int + __gthr_win32_recursive_mutex_trylock (__gthread_recursive_mutex_t *); +extern int __gthr_win32_recursive_mutex_unlock (__gthread_recursive_mutex_t *); static inline int __gthread_once (__gthread_once_t *once, void (*func) (void)) @@ -481,6 +488,12 @@ __gthread_mutex_unlock (__gthread_mutex_t *mutex) return 0; } +static inline void +__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) +{ + __gthr_win32_recursive_mutex_init_function (mutex); +} + static inline int __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) { @@ -668,7 +681,7 @@ __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) } else if (mutex->owner == me) { - InterlockedDecrement (&mx->lock_idx); + InterlockedDecrement (&mutex->counter); ++(mutex->depth); } else if (WaitForSingleObject (mutex->sema, INFINITE) == WAIT_OBJECT_0) |

