GDBDriver.st
changeset 19 c48d33e27d34
parent 18 6bf3d5c400d1
--- a/GDBDriver.st	Thu Jun 19 22:16:26 2014 +0100
+++ b/GDBDriver.st	Thu Jun 19 22:27:00 2014 +0100
@@ -2,8 +2,9 @@
 
 Object subclass:#GDBDriver
 	instanceVariableNames:'pid debuggerInput debuggerOutput inferiorPTY eventAnnouncer
-		eventQueue eventQueueLock eventQueueNotifier eventDispatchProcess
-		eventPumpProcess outstandingCommands'
+		eventAnnouncerInternal eventQueue eventQueueLock
+		eventQueueNotifier eventDispatchProcess eventPumpProcess
+		outstandingCommands'
 	classVariableNames:''
 	poolDictionaries:'GDBDebugFlags'
 	category:'GDB-Private'
@@ -27,6 +28,12 @@
     ^ eventAnnouncer
 !
 
+eventAnnouncerInternal
+    ^ eventAnnouncerInternal
+
+    "Created: / 19-06-2014 / 22:18:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 inferiorPTY
     ^ inferiorPTY
 ! !
@@ -70,10 +77,11 @@
     TraceEvents ifTrue:[ 
         Logger log: ('event loop: broadcasting %1 (%2)' bindWith: aGDBEvent class name with: aGDBEvent token) severity: #trace facility: 'GDB'
     ].
+    eventAnnouncerInternal announce: aGDBEvent.
     eventAnnouncer announce: aGDBEvent
 
     "Created: / 02-06-2014 / 22:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 04-06-2014 / 09:21:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-06-2014 / 22:18:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 eventDispatchStart
@@ -245,14 +253,15 @@
     eventQueueLock := RecursionLock new.
     eventQueueNotifier := Semaphore new.
     eventAnnouncer := Announcer new.
+    eventAnnouncerInternal := Announcer new.    
     outstandingCommands := Set new.
-    eventAnnouncer 
+    eventAnnouncerInternal 
         when:GDBCommandEvent
         send:#onCommand:
         to:self.
 
     "Created: / 09-06-2014 / 18:21:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 19-06-2014 / 22:08:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-06-2014 / 22:18:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 release