[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] [PATCH 3/3] gst-sunit: Spawn the event loop last to avo
From: |
Holger Hans Peter Freyther |
Subject: |
[Help-smalltalk] [PATCH 3/3] gst-sunit: Spawn the event loop last to avoid crashes |
Date: |
Sun, 20 Jul 2014 17:50:04 +0200 |
It was possible that while we started to show the VisualGST
window GTK+ would call back into Smalltalk and we would run
the Glib dispatch while showing the window. This lead to a
timer expiring on a non-fully realized window and leading to
a crash inside GTK+/X11.
Run the event loop after we have intitialized all of the
VisualGST code.
2014-07-20 Holger Hans Peter Freyther <address@hidden>
* scripts/Test.st: Spawn the event loop last.
---
ChangeLog | 4 ++++
scripts/Test.st | 11 ++++-------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index db932dd..73738d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-07-20 Holger Hans Peter Freyther <address@hidden>
+
+ * scripts/Test.st: Spawn the event loop last.
+
2014-06-21 Holger Hans Peter Freyther <address@hidden>
* kernel/RecursionLock.st: Return the result of >>#critical:
diff --git a/scripts/Test.st b/scripts/Test.st
index 28409bb..20e552d 100644
--- a/scripts/Test.st
+++ b/scripts/Test.st
@@ -56,12 +56,8 @@ Object subclass: SUnitUnhandledDebugger [
LoadedDebugger := true.
PackageLoader fileInPackage: 'VisualGST'.
- "Start the event-loop and avoid scope look-ups. This is why
- we look-up the class by hand."
- [
- ((Smalltalk at: #VisualGST) at: #TaskQueue) uniqueInstance run.
- ((Smalltalk at: #GTK) at: #Gtk) main
- ] fork.
+ "Start to run the VisualGST task queue"
+ ((Smalltalk at: #VisualGST) at: #TaskQueue) uniqueInstance run.
]
SUnitUnhandledDebugger class >> keepRunningOnFailure [
@@ -70,7 +66,8 @@ Object subclass: SUnitUnhandledDebugger [
]
SUnitUnhandledDebugger class >> keepRunning [
- Semaphore new wait
+ Processor activeProcess name: 'Main-loop for SUnit'.
+ ((Smalltalk at: #GTK) at: #Gtk) main
]
]
--
2.0.1