--- a/src/JavaProcess.st Sat Nov 05 23:11:06 2011 +0000
+++ b/src/JavaProcess.st Sun Nov 06 17:07:27 2011 +0000
@@ -253,38 +253,20 @@
]
]
] ensure:[
- |monitors|
-
- monitors := (Smalltalk at:#'JavaVM:EnteredMonitorsPerProcess')
- at:javaProcess
- ifAbsent:nil.
- monitors notNil ifTrue:[
- monitors do:[:obj |
- |mon|
+ JavaVM releaseMonitorsOfProcess: javaProcess.
- mon := JavaVM monitorFor:obj.
- mon notNil ifTrue:[
- mon owningProcess == javaProcess ifTrue:[
- ('JAVA: release monitor owned by dying thread: ' , javaProcess name)
- infoPrintCR.
- self breakPoint: #jv.
- mon exit
- ].
- ].
- ].
- (Smalltalk at:#'JavaVM:EnteredMonitorsPerProcess') removeKey:javaProcess.
- javaProcess == (Smalltalk at:#'JavaVM:JavaScreenUpdaterThread') ifTrue:[
- Smalltalk at:#'JavaVM:JavaScreenUpdaterThread' put:nil.
- ].
- javaProcess == (Smalltalk at:#'JavaVM:JavaEventQueueThread') ifTrue:[
- Smalltalk at:#'JavaVM:JavaEventQueueThread' put:nil.
- ].
+ (Smalltalk at:#'JavaVM:EnteredMonitorsPerProcess') removeKey:javaProcess.
+ javaProcess == (Smalltalk at:#'JavaVM:JavaScreenUpdaterThread') ifTrue:[
+ Smalltalk at:#'JavaVM:JavaScreenUpdaterThread' put:nil.
+ ].
+ javaProcess == (Smalltalk at:#'JavaVM:JavaEventQueueThread') ifTrue:[
+ Smalltalk at:#'JavaVM:JavaEventQueueThread' put:nil.
+ ].
"/ screenUpdaterClass := Java at:'sun.awt.ScreenUpdater'.
"/ screenUpdaterClass notNil ifTrue:[
"/ screenUpdaterClass instVarNamed:'updater' put:nil.
"/ ].
- ].
Java threads removeKey:javaThreadObject ifAbsent:[].
]
]