From a996864cd98d321768eccfe32e44e7583ec643e4 Mon Sep 17 00:00:00 2001 From: "Michael \"Z\" Goddard" Date: Tue, 9 Oct 2018 10:44:10 -0400 Subject: [PATCH 1/2] test that stop all stops current threads next tick --- .../fixtures/execute/control-stop-all-leaks.sb2 | Bin 0 -> 55070 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/fixtures/execute/control-stop-all-leaks.sb2 diff --git a/test/fixtures/execute/control-stop-all-leaks.sb2 b/test/fixtures/execute/control-stop-all-leaks.sb2 new file mode 100644 index 0000000000000000000000000000000000000000..fb0ea115a82a4ce5ad9412559f2b4a002d977af8 GIT binary patch literal 55070 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 C3_aTb literal 0 HcmV?d00001 From 39b18fedde4b163c1d5d19e14fc74aff6a67d3d9 Mon Sep 17 00:00:00 2001 From: "Michael \"Z\" Goddard" Date: Tue, 9 Oct 2018 10:45:56 -0400 Subject: [PATCH 2/2] stop all removes threads from future execution Stop all does not **stop** all threads. It stops the active thread and removes all other threads from executing in the future. --- src/engine/runtime.js | 8 ++++++-- src/engine/sequencer.js | 9 +++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/engine/runtime.js b/src/engine/runtime.js index 204cd4633..2892c2c9f 100644 --- a/src/engine/runtime.js +++ b/src/engine/runtime.js @@ -1853,8 +1853,12 @@ class Runtime extends EventEmitter { } } this.targets = newTargets; - // Dispose all threads. - this.threads.forEach(thread => this._stopThread(thread)); + // Dispose of the active thread. + if (this.sequencer.activeThread !== null) { + this._stopThread(this.sequencer.activeThread); + } + // Remove all remaining threads from executing in the next tick. + this.threads = []; } /** diff --git a/src/engine/sequencer.js b/src/engine/sequencer.js index 464cd7489..2e3def54c 100644 --- a/src/engine/sequencer.js +++ b/src/engine/sequencer.js @@ -51,6 +51,8 @@ class Sequencer { * @type {!Runtime} */ this.runtime = runtime; + + this.activeThread = null; } /** @@ -97,8 +99,9 @@ class Sequencer { numActiveThreads = 0; let stoppedThread = false; // Attempt to run each thread one time. - for (let i = 0; i < this.runtime.threads.length; i++) { - const activeThread = this.runtime.threads[i]; + const threads = this.runtime.threads; + for (let i = 0; i < threads.length; i++) { + const activeThread = this.activeThread = threads[i]; // Check if the thread is done so it is not executed. if (activeThread.stack.length === 0 || activeThread.status === Thread.STATUS_DONE) { @@ -165,6 +168,8 @@ class Sequencer { } } + this.activeThread = null; + return doneThreads; }