*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Tue, 22 Sep 2009 20:30:55 +0200
changeset 8767 00f1c865aaea
parent 8766 f9af1c29b401
child 8768 c36572c239a4
*** empty log message ***
Tools__BreakpointBrowser.st
--- 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 $'
 ! !