Do not call `GDBThread >> #stack` in `GDBThreadGroup >> #onThreadSelectedEvent:`
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 01 Dec 2019 08:40:43 +0000
changeset 204 657ffb5e85fa
parent 203 8b883bd72f5a
child 205 26ed194991b7
Do not call `GDBThread >> #stack` in `GDBThreadGroup >> #onThreadSelectedEvent:` ...since that code is executed within event loop and so may deadlock. Sigh.
GDBThreadGroup.st
--- a/GDBThreadGroup.st	Fri Oct 04 22:58:21 2019 +0200
+++ b/GDBThreadGroup.st	Sun Dec 01 08:40:43 2019 +0000
@@ -219,7 +219,10 @@
 
     aGDBThreadSelectedEvent setThread: thread.
     "/ Be carefull, thread may be running!!
-    (thread isStopped and:[frame notNil]) ifTrue:[ 
+    (false "thread isStopped and:[frame notNil]") ifTrue:[ 
+        "/ This is actually not a good idea. This code is executed
+        "/ within event dispatching process so one may not execute
+        "/ more commands - which is what `thread stack` does. Sigh.
         aGDBThreadSelectedEvent setFrame: (thread stack at: (frame level + 1))
     ] ifFalse:[ 
         "/ If it is running, at least fixup it's frame, if there's any (it may not
@@ -233,7 +236,7 @@
     ].
 
     "Created: / 29-07-2018 / 22:21:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 26-01-2019 / 23:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-11-2019 / 22:09:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GDBThreadGroup methodsFor:'initialization'!