diff options
author | Tom Tromey <tromey@redhat.com> | 2005-09-27 20:03:09 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2005-09-27 20:03:09 +0000 |
commit | b9e6a2e5de4e94b5c3bfbe6c60e3231a200e46bc (patch) | |
tree | 18763461cdb28ee640435eb7d63f5a857583660c /libjava/java/lang/natThread.cc | |
parent | ab3fa9d34434e2aa491c216a3b9b20122179db64 (diff) | |
download | gcc-b9e6a2e5de4e94b5c3bfbe6c60e3231a200e46bc.zip gcc-b9e6a2e5de4e94b5c3bfbe6c60e3231a200e46bc.tar.gz gcc-b9e6a2e5de4e94b5c3bfbe6c60e3231a200e46bc.tar.bz2 |
re PR libgcj/23367 (_Jv_FindMethodInCache is not thread-safe)
PR libgcj/23367:
* include/jvm.h (_Jv_FreeMethodCache): Declare.
* java/lang/natClass.cc (MCACHE_SIZE): Conditional on HAVE_TLS.
(struct _Jv_mcache): Likewise.
(method_cache): Likewise.
(_Jv_FindMethodInCache): Do nothing unless TLS is available.
(_Jv_AddMethodToCache): Likewise.
(_Jv_FreeMethodCache): New function.
* java/lang/natThread.cc (finish_): Call _Jv_FreeMethodCache.
* aclocal.m4, configure, include/config.h.in: Rebuilt.
* configure.ac: Invoke GCC_CHECK_TLS.
From-SVN: r104707
Diffstat (limited to 'libjava/java/lang/natThread.cc')
-rw-r--r-- | libjava/java/lang/natThread.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc index f1064f1..80cdae3 100644 --- a/libjava/java/lang/natThread.cc +++ b/libjava/java/lang/natThread.cc @@ -214,7 +214,10 @@ java::lang::Thread::finish_ () #endif group = NULL; - + + // If a method cache was created, free it. + _Jv_FreeMethodCache(); + // Signal any threads that are waiting to join() us. _Jv_MutexLock (&nt->join_mutex); |