--- a/Tools__BreakpointBrowser.st Tue Sep 22 19:17:39 2009 +0200
+++ b/Tools__BreakpointBrowser.st Tue Sep 22 20:30:55 2009 +0200
@@ -17,7 +17,8 @@
instanceVariableNames:'updatingLabelShown breakpointList shownCopyOfBreakpointList
selectionIndexHolder currentSortColumn currentSortIsReverse
showHalts showAssertions showCodeBreakpoints
- showCodeBreakpointsFor showMethodBreakpoints codeView infoHolder'
+ showCodeBreakpointsFor showMethodBreakpoints codeView infoHolder
+ updateProcess'
classVariableNames:''
poolDictionaries:''
category:'Interface-Smalltalk-Breakpoints'
@@ -1113,6 +1114,12 @@
!
release
+ |p|
+
+ (p := updateProcess) notNil ifTrue:[
+ updateProcess := nil.
+ p terminate
+ ].
Smalltalk removeDependent:self.
super release
! !
@@ -1311,22 +1318,30 @@
!
updateList
+ updateProcess notNil ifTrue:[^ self ].
+
self updatingLabelShown value:true.
"/ cg: mhmh why is this needed ????
Delay waitForSeconds:0.1.
self windowGroup repairDamage.
- self withWaitCursorDo:[
- ActivityNotification handle:[:ex |
- self infoHolder value:ex errorString.
- self windowGroup processExposeEvents.
- ex proceed.
- ] do:[
- self updateBreakpointList.
- self updateShownBreakpointList.
- ]
- ].
- self updatingLabelShown value:false.
+ updateProcess :=
+ [
+ [
+ ActivityNotification handle:[:ex |
+ self infoHolder value:ex errorString.
+ self windowGroup processExposeEvents.
+ ex proceed.
+ ] do:[
+ self updateBreakpointList.
+ self updateShownBreakpointList.
+ ]
+ ] ensure:[
+ updateProcess := nil.
+ self updatingLabelShown value:false.
+ ].
+ ] newProcess.
+ updateProcess resume.
! !
!BreakpointBrowser::BreakpointListEntry methodsFor:'accessing'!
@@ -1469,5 +1484,5 @@
!BreakpointBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.11 2009-02-03 10:41:37 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.12 2009-09-22 18:30:55 cg Exp $'
! !