JavaProcess.st
changeset 3782 32e335ed7c6f
parent 3431 82790b1e6d54
equal deleted inserted replaced
3781:5948124e57ee 3782:32e335ed7c6f
   126 ! !
   126 ! !
   127 
   127 
   128 !JavaProcess methodsFor:'suspend & resume'!
   128 !JavaProcess methodsFor:'suspend & resume'!
   129 
   129 
   130 terminateNoSignal
   130 terminateNoSignal
   131     | jThread |
   131     | jThread jThreadMonitor |
   132     jThread := Java threadForStProcess: self.
   132     jThread := Java threadForStProcess: self.
   133     jThread notNil ifTrue:[
   133     jThread notNil ifTrue:[
   134         JavaVM acquireMonitorAndNotifyAll: jThread.
   134         jThreadMonitor := jThread getJavaMonitor.
       
   135         [ 
       
   136             jThreadMonitor 
       
   137                 acquire; 
       
   138                 notify: true. "/ notifyAll()
       
   139         ] ensure:[ 
       
   140             jThreadMonitor release.
       
   141         ].    
   135     ].
   142     ].
   136     super terminateNoSignal
   143     super terminateNoSignal
   137 
   144 
   138     "Created: / 15-12-2010 / 00:18:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   145     "Created: / 15-12-2010 / 00:18:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   139     "Modified: / 09-12-2011 / 12:51:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   146     "Modified: / 09-12-2011 / 12:51:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   140     "Modified: / 27-08-2012 / 11:50:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   147     "Modified: / 15-08-2017 / 23:39:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   141 ! !
   148 ! !
   142 
   149 
   143 !JavaProcess::Helper methodsFor:'initialization'!
   150 !JavaProcess::Helper methodsFor:'initialization'!
   144 
   151 
   145 javaProcess:something
   152 javaProcess:something
   243                                 ]
   250                                 ]
   244                             ]
   251                             ]
   245                         ]
   252                         ]
   246                     ]
   253                     ]
   247             ] ensure:[
   254             ] ensure:[
   248                 JavaVM leaveMonitorsOfProcess:javaProcess.
       
   249                 javaProcess == (Smalltalk at:#'JavaVM:JavaScreenUpdaterThread') ifTrue:[
   255                 javaProcess == (Smalltalk at:#'JavaVM:JavaScreenUpdaterThread') ifTrue:[
   250                     Smalltalk at:#'JavaVM:JavaScreenUpdaterThread' put:nil.
   256                     Smalltalk at:#'JavaVM:JavaScreenUpdaterThread' put:nil.
   251                 ].
   257                 ].
   252                 javaProcess == (Smalltalk at:#'JavaVM:JavaEventQueueThread') ifTrue:[
   258                 javaProcess == (Smalltalk at:#'JavaVM:JavaEventQueueThread') ifTrue:[
   253                     Smalltalk at:#'JavaVM:JavaEventQueueThread' put:nil.
   259                     Smalltalk at:#'JavaVM:JavaEventQueueThread' put:nil.
   261             ]
   267             ]
   262         ]
   268         ]
   263 
   269 
   264     "Created: / 15-12-2010 / 11:06:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   270     "Created: / 15-12-2010 / 11:06:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   265     "Modified: / 09-12-2011 / 12:51:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   271     "Modified: / 09-12-2011 / 12:51:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   266     "Modified: / 02-03-2015 / 14:02:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   272     "Modified: / 15-08-2017 / 23:44:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   267 ! !
   273 ! !
   268 
   274 
   269 !JavaProcess class methodsFor:'documentation'!
   275 !JavaProcess class methodsFor:'documentation'!
   270 
   276 
   271 version
   277 version