aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorNia Waldvogel <[email protected]>2021-07-21 14:30:01 -0400
committerRon Evans <[email protected]>2021-11-14 10:49:28 +0100
commit641dcd7c16d60a53faf8b61b509057830441a765 (patch)
tree2db29ae018645871178727e8c355bc69b24db796 /tests
parent523d1f28cf31ebd398093636b915bbcb3dcd93d5 (diff)
downloadtinygo-641dcd7c16d60a53faf8b61b509057830441a765.tar.gz
tinygo-641dcd7c16d60a53faf8b61b509057830441a765.zip
internal/task: use asyncify on webassembly
This change implements a new "scheduler" for WebAssembly using binaryen's asyncify transform. This is more reliable than the current "coroutines" transform, and works with non-Go code in the call stack. runtime (js/wasm): handle scheduler nesting If WASM calls into JS which calls back into WASM, it is possible for the scheduler to nest. The event from the callback must be handled immediately, so the task cannot simply be deferred to the outer scheduler. This creates a minimal scheduler loop which is used to handle such nesting.
Diffstat (limited to 'tests')
-rw-r--r--tests/wasm/chan_test.go3
1 files changed, 1 insertions, 2 deletions
diff --git a/tests/wasm/chan_test.go b/tests/wasm/chan_test.go
index 793bf1de3..e44d7ebe4 100644
--- a/tests/wasm/chan_test.go
+++ b/tests/wasm/chan_test.go
@@ -24,13 +24,12 @@ func TestChan(t *testing.T) {
err = chromedp.Run(ctx,
chromedp.Navigate(server.URL+"/run?file=chan.wasm"),
waitLog(`1
-2
4
+2
3
true`),
)
if err != nil {
t.Fatal(err)
}
-
}