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/include | |
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/include')
-rw-r--r-- | libjava/include/Makefile.in | 7 | ||||
-rw-r--r-- | libjava/include/config.h.in | 3 | ||||
-rw-r--r-- | libjava/include/jvm.h | 4 |
3 files changed, 11 insertions, 3 deletions
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index aa4da52..77775a1 100644 --- a/libjava/include/Makefile.in +++ b/libjava/include/Makefile.in @@ -43,6 +43,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/gxx-include-dir.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lcmessage.m4 \ @@ -51,9 +52,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/lib-link.m4 \ $(top_srcdir)/../config/lib-prefix.m4 \ $(top_srcdir)/../config/no-executables.m4 \ - $(top_srcdir)/../libtool.m4 $(top_srcdir)/mingwld.m4 \ - $(top_srcdir)/pkg.m4 $(top_srcdir)/shlibpath.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../libtool.m4 \ + $(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \ + $(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) CONFIG_HEADER = config.h $(top_builddir)/gcj/libgcj-config.h diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in index ffb3d3f..990b885 100644 --- a/libjava/include/config.h.in +++ b/libjava/include/config.h.in @@ -319,6 +319,9 @@ /* Define if global 'timezone' exists. */ #undef HAVE_TIMEZONE +/* Define to 1 if the target supports thread-local storage. */ +#undef HAVE_TLS + /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index 459d459..6061300 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -359,6 +359,10 @@ void _Jv_SetInitialHeapSize (const char *arg); _Jv_GCSetMaximumHeapSize. */ void _Jv_SetMaximumHeapSize (const char *arg); +/* Free the method cache, if one was allocated. This is only called + during thread deregistration. */ +void _Jv_FreeMethodCache (); + extern "C" void JvRunMain (jclass klass, int argc, const char **argv); void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar); |