natClassLoader.cc (_Jv_WaitForState): Call _Jv_PrepareCompiledClass while holding...
authorTom Tromey <tromey@cygnus.com>
Thu, 2 Sep 1999 19:33:50 +0000 (19:33 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Thu, 2 Sep 1999 19:33:50 +0000 (19:33 +0000)
* java/lang/natClassLoader.cc (_Jv_WaitForState): Call
_Jv_PrepareCompiledClass while holding class mutex.

From-SVN: r29063

libjava/ChangeLog
libjava/java/lang/natClassLoader.cc

index 562fe05c200d51e46e4ac5125a672fe5d5640cf3..65ec9adafeccc2ad18a4b1035dbd343f2dc6f696 100644 (file)
@@ -1,3 +1,8 @@
+1999-09-02  Tom Tromey  <tromey@cygnus.com>
+
+       * java/lang/natClassLoader.cc (_Jv_WaitForState): Call
+       _Jv_PrepareCompiledClass while holding class mutex.
+
 1999-09-01  Tom Tromey  <tromey@cygnus.com>
 
        * include/posix-threads.h (PTHREAD_MUTEX_IS_STRUCT): New define.
index 4172a44e263ed5c576ff977afdfe274250acb9c3..c0d06d47caf3ddfa03b0d7ea7d88b8efe4d43526 100644 (file)
@@ -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;