gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long', not Windows 'DWORD'.
authorWu Yongwei <adah@sh163.net>
Wed, 1 Sep 2004 23:18:54 +0000 (23:18 +0000)
committerDanny Smith <dannysmith@gcc.gnu.org>
Wed, 1 Sep 2004 23:18:54 +0000 (23:18 +0000)
* 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.

Co-Authored-By: Danny Smith <dannysmith@users.sourceforge.net>
From-SVN: r86939

gcc/ChangeLog
gcc/config/i386/gthr-win32.c
gcc/gthr-win32.h

index 6341a0d04146df353090a6ec4b58a622b17803c9..47a00dcf14e3faa5e23f7a49f6a9e459ad39acb7 100644 (file)
@@ -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
index 6fb3cf8853d53c9ede00aa073be0a617a0aa1e36..d6cd7a98796e269c66251f26d41b40b70213640a 100644 (file)
@@ -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)
index 3e1aac7fce093930e3ad64dc36e8c47caeb25b12..49ea54081c86b6c418e24bfb926f3d61fa08f984 100644 (file)
@@ -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)