From 773c6f00765f091ee6a69929a19cfd46d7a30c03 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 2 Sep 1999 19:33:50 +0000 Subject: [PATCH] natClassLoader.cc (_Jv_WaitForState): Call _Jv_PrepareCompiledClass while holding class mutex. * java/lang/natClassLoader.cc (_Jv_WaitForState): Call _Jv_PrepareCompiledClass while holding class mutex. From-SVN: r29063 --- libjava/ChangeLog | 5 +++++ libjava/java/lang/natClassLoader.cc | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 562fe05c200..65ec9adafec 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +1999-09-02 Tom Tromey + + * java/lang/natClassLoader.cc (_Jv_WaitForState): Call + _Jv_PrepareCompiledClass while holding class mutex. + 1999-09-01 Tom Tromey * include/posix-threads.h (PTHREAD_MUTEX_IS_STRUCT): New define. diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index 4172a44e263..c0d06d47caf 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -144,8 +144,10 @@ _Jv_WaitForState (jclass klass, int state) if (state == JV_STATE_LINKED) { - _Jv_MonitorExit (klass); + // Must call _Jv_PrepareCompiledClass while holding the class + // mutex. _Jv_PrepareCompiledClass (klass); + _Jv_MonitorExit (klass); return; } @@ -217,7 +219,7 @@ _Jv_PrepareCompiledClass(jclass klass) if (klass->state >= JV_STATE_LINKED) return; - // short-circuit, so that mutually dependent classes are ok + // Short-circuit, so that mutually dependent classes are ok. klass->state = JV_STATE_LINKED; _Jv_Constants *pool = &klass->constants;