src/JavaContext.st
branchjk_new_structure
changeset 1122 2f8e947cfda2
parent 1102 df54d5b34c6b
child 1152 040cba55a7d2
--- a/src/JavaContext.st	Thu Nov 17 13:59:35 2011 +0000
+++ b/src/JavaContext.st	Thu Nov 17 18:13:31 2011 +0000
@@ -375,10 +375,11 @@
     self assert: (acqrMonitors isNil or: [ acqrMonitors isOrderedCollection ]).
     acqrMonitors ifNil: [ acqrMonitors := Stack new ].
     acqrMonitors push: mon.
+    self markForUnwind.
 
     "Created: / 08-11-2011 / 14:19:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 08-11-2011 / 21:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-11-2011 / 14:31:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 17-11-2011 / 19:13:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 !
 
 programmingLanguage
@@ -389,8 +390,7 @@
 !
 
 removeMonitor: mon 
-    |poppedObject|
-    "self assert: (acqrMonitors isNil or: [ acqrMonitors isOrderedCollection ])."
+    | poppedObject |
     acqrMonitors isNil ifTrue: [
         Logger 
             log: ('removeMonitor: called but no monitors in acqrMonitors (%1)' 
@@ -411,11 +411,12 @@
                 facility: #JVM.
             self breakPoint: #mh.
             ^ self.
-        ]
+        ].
+        acqrMonitors isEmpty ifTrue: [self unmarkForUnwind].
 
     "Created: / 08-11-2011 / 14:19:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 08-11-2011 / 21:39:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-11-2011 / 14:34:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 17-11-2011 / 19:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 ! !
 
 !JavaContext methodsFor:'exception handler support'!