Fixed leaking processes when using GDBSimulatorProcess.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 25 Aug 2014 09:53:27 +0100
changeset 31 1d8d532f27fd
parent 30 520ddea6851f
child 75 0b8ce7d74318
Fixed leaking processes when using GDBSimulatorProcess. Fixed simulation of real pipes and proceses so event pump/dispatcher is correctly terminated when using GDBSimulatorProcess
GDBConnection.st
GDBInternalPipeStream.st
GDBMI_stack_select_frame.st
GDBSimulatorProcess.st
Make.proto
bc.mak
libgdbs.rc
tests/GDBSimulatorProcessTests.st
tests/Make.proto
tests/bc.mak
tests/tests.rc
--- a/GDBConnection.st	Sun Jul 06 10:27:25 2014 +0100
+++ b/GDBConnection.st	Mon Aug 25 09:53:27 2014 +0100
@@ -283,7 +283,7 @@
         Logger log: ('gdb process: exited with status %1' bindWith: status code)  severity: #trace facility: 'GDB'.
     ].
     TraceProcesses ifTrue:[ 
-        Logger log: ('gdb process: waiting for event pump to finish' bindWith: status code)  severity: #trace facility: 'GDB'.
+        Logger log: 'gdb process: waiting for event pump to finish' severity: #trace facility: 'GDB'.
     ].
     [ eventPumpProcess notNil ] whileTrue:[ 
         Delay waitForMilliseconds: 200.  
@@ -296,7 +296,7 @@
     inferiorPTY release.
 
     "Created: / 26-05-2014 / 21:31:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-06-2014 / 21:37:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-08-2014 / 08:55:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GDBConnection class methodsFor:'documentation'!
--- a/GDBInternalPipeStream.st	Sun Jul 06 10:27:25 2014 +0100
+++ b/GDBInternalPipeStream.st	Mon Aug 25 09:53:27 2014 +0100
@@ -113,8 +113,9 @@
 
 close
     closed := true.
+    dataAvailable signalForAll
 
-    "Modified: / 07-06-2014 / 01:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-08-2014 / 09:49:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 readStream
--- a/GDBMI_stack_select_frame.st	Sun Jul 06 10:27:25 2014 +0100
+++ b/GDBMI_stack_select_frame.st	Mon Aug 25 09:53:27 2014 +0100
@@ -49,3 +49,10 @@
 	^ 'stack-select-frame'
 ! !
 
+!GDBMI_stack_select_frame class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/GDBSimulatorProcess.st	Sun Jul 06 10:27:25 2014 +0100
+++ b/GDBSimulatorProcess.st	Mon Aug 25 09:53:27 2014 +0100
@@ -138,11 +138,19 @@
     thread := [ 
         self processLoop.
     ] newProcess.
-    thread addExitAction: [ thread := nil ].
+    thread addExitAction: [ 
+        thread := nil.
+        debuggerInput close.
+        debuggerOutput close.
+        self exited: 
+            (Plug new
+                respondTo: #code  with: [ 0 ];
+                yourself).
+    ].
     thread resume.
 
     "Created: / 24-06-2014 / 00:58:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 24-06-2014 / 08:48:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-08-2014 / 09:47:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 stop
--- a/Make.proto	Sun Jul 06 10:27:25 2014 +0100
+++ b/Make.proto	Mon Aug 25 09:53:27 2014 +0100
@@ -104,6 +104,7 @@
 	cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/announcements && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd $(TOP)/libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
--- a/bc.mak	Sun Jul 06 10:27:25 2014 +0100
+++ b/bc.mak	Mon Aug 25 09:53:27 2014 +0100
@@ -53,6 +53,7 @@
 	pushd ..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\goodies\announcements & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\stx\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
--- a/libgdbs.rc	Sun Jul 06 10:27:25 2014 +0100
+++ b/libgdbs.rc	Mon Aug 25 09:53:27 2014 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
       VALUE "ProductName", "LibraryName\0"
       VALUE "ProductVersion", "6.2.4.0\0"
-      VALUE "ProductDate", "Sun, 06 Jul 2014 09:26:19 GMT\0"
+      VALUE "ProductDate", "Mon, 25 Aug 2014 08:50:18 GMT\0"
     END
 
   END
--- a/tests/GDBSimulatorProcessTests.st	Sun Jul 06 10:27:25 2014 +0100
+++ b/tests/GDBSimulatorProcessTests.st	Mon Aug 25 09:53:27 2014 +0100
@@ -7,6 +7,7 @@
 	category:'GDB-Private-Tests'
 !
 
+
 !GDBSimulatorProcessTests methodsFor:'running'!
 
 tearDown
@@ -66,3 +67,10 @@
     "Created: / 05-07-2014 / 22:55:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!GDBSimulatorProcessTests class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/tests/Make.proto	Sun Jul 06 10:27:25 2014 +0100
+++ b/tests/Make.proto	Mon Aug 25 09:53:27 2014 +0100
@@ -104,6 +104,7 @@
 	cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/announcements && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd $(TOP)/libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
--- a/tests/bc.mak	Sun Jul 06 10:27:25 2014 +0100
+++ b/tests/bc.mak	Mon Aug 25 09:53:27 2014 +0100
@@ -53,6 +53,7 @@
 	pushd ..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\goodies\announcements & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\stx\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
--- a/tests/tests.rc	Sun Jul 06 10:27:25 2014 +0100
+++ b/tests/tests.rc	Mon Aug 25 09:53:27 2014 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
       VALUE "ProductName", "LibraryName\0"
       VALUE "ProductVersion", "6.2.4.0\0"
-      VALUE "ProductDate", "Sun, 06 Jul 2014 09:26:21 GMT\0"
+      VALUE "ProductDate", "Mon, 25 Aug 2014 08:50:21 GMT\0"
     END
 
   END