diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2008-02-10 18:06:34 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2008-02-10 18:06:34 +0000 |
commit | ef4195d63d08c669014ec5330f1b4eacd9778736 (patch) | |
tree | cb9b409978e20058c0a784dab93cc4c41074e52c /gcc/gthr-win32.h | |
parent | 39caa164347d4dedef97ccf05cdb66da6514bee6 (diff) | |
download | gcc-ef4195d63d08c669014ec5330f1b4eacd9778736.zip gcc-ef4195d63d08c669014ec5330f1b4eacd9778736.tar.gz gcc-ef4195d63d08c669014ec5330f1b4eacd9778736.tar.bz2 |
[multiple changes]
2008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
PR gcc/35063
* gthr-win32.h (__gthread_mutex_destroy_function): New function
to CloseHandle after unlocking to prevent accumulation of handle
count.
2008-02-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/35063
* io/unit.c (destroy_unit_mutex): New function that uses
__gthread_mutex_destroy_function or pthread_mutex_destroy after
unlocking and before free_mem for final closure of I/O unit.
(delete_root): Use new function.
(free_internal_unit): Likewise.
(close_unit_1): Likewise.
From-SVN: r132217
Diffstat (limited to 'gcc/gthr-win32.h')
-rw-r--r-- | gcc/gthr-win32.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/gthr-win32.h b/gcc/gthr-win32.h index 80b2b71..6a32c1a 100644 --- a/gcc/gthr-win32.h +++ b/gcc/gthr-win32.h @@ -359,6 +359,9 @@ typedef struct { __gthread_recursive_mutex_init_function #define __GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT {-1, 0, 0, 0} +#define __GTHREAD_MUTEX_DESTROY_FUNCTION \ + __gthread_mutex_destroy_function + #if __MINGW32_MAJOR_VERSION >= 1 || \ (__MINGW32_MAJOR_VERSION == 0 && __MINGW32_MINOR_VERSION > 2) #define MINGW32_SUPPORTS_MT_EH 1 @@ -615,6 +618,12 @@ __gthread_mutex_init_function (__gthread_mutex_t *mutex) mutex->sema = CreateSemaphore (NULL, 0, 65535, NULL); } +static inline void +__gthread_mutex_destroy_function (__gthread_mutex_t *mutex) +{ + CloseHandle ((HANDLE) mutex->sema); +} + static inline int __gthread_mutex_lock (__gthread_mutex_t *mutex) { |