aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorWu Yongwei <adah@sh163.net>2004-09-01 23:18:54 +0000
committerDanny Smith <dannysmith@gcc.gnu.org>2004-09-01 23:18:54 +0000
commit40219f9650a956d7fbff36721fae3a5b761311b1 (patch)
treec0cf7a4d0974baae80291d2385965871d0eb1773 /gcc
parentba2e294dfbbb6790b8f26e654b487a6aae94a1c7 (diff)
downloadgcc-40219f9650a956d7fbff36721fae3a5b761311b1.zip
gcc-40219f9650a956d7fbff36721fae3a5b761311b1.tar.gz
gcc-40219f9650a956d7fbff36721fae3a5b761311b1.tar.bz2
gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long', not Windows 'DWORD'.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog18
-rw-r--r--gcc/config/i386/gthr-win32.c2
-rw-r--r--gcc/gthr-win32.h21
3 files changed, 36 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6341a0d..47a00dc 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 6fb3cf8..d6cd7a9 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 3e1aac7..49ea540 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)