Nia Waldvogel
641dcd7c16
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.
2021-11-14 10:49:28 +01:00
..
2021-04-12 11:03:13 +02:00
2020-09-03 06:24:18 +02:00
2021-06-25 17:58:39 +02:00
2021-08-30 15:45:47 +02:00
2021-06-19 16:45:56 +02:00
2021-05-01 17:09:46 +02:00
2020-09-09 13:05:14 +02:00
2021-06-25 17:58:39 +02:00
2021-06-19 16:45:56 +02:00
2020-08-27 19:23:22 +02:00
2021-11-03 23:03:44 +01:00
2021-11-03 23:03:44 +01:00
2021-11-03 23:03:44 +01:00
2021-11-03 23:03:44 +01:00
2019-02-20 14:16:09 +01:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2019-09-14 17:56:14 +02:00
2021-04-14 09:17:54 +02:00
2021-04-14 09:17:54 +02:00
2021-04-14 09:17:54 +02:00
2020-05-07 23:04:10 +02:00
2021-04-14 09:17:54 +02:00
2021-04-14 09:17:54 +02:00
2021-03-15 14:06:09 +01:00
2021-04-16 17:49:46 +02:00
2021-04-15 15:43:37 +02:00
2021-04-16 17:49:46 +02:00
2021-06-25 17:58:39 +02:00
2021-05-10 12:27:10 +02:00
2021-11-03 23:03:44 +01:00
2021-09-28 18:44:11 +02:00
2020-10-31 21:06:26 +01:00
2021-02-12 01:10:06 +01:00
2020-12-30 09:19:41 +01:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-09-05 23:54:26 +02:00
2021-06-19 16:45:56 +02:00
2021-06-29 09:07:02 +02:00
2020-12-29 15:17:38 +01:00
2021-11-07 09:26:46 +01:00
2021-11-07 09:26:46 +01:00
2021-11-07 09:26:46 +01:00
2021-11-07 09:26:46 +01:00
2021-11-07 09:26:46 +01:00
2021-11-05 09:42:00 +01:00
2021-04-14 09:17:54 +02:00
2020-08-27 19:23:22 +02:00
2021-11-05 09:42:00 +01:00
2020-10-17 19:57:53 +02:00
2021-02-12 01:10:06 +01:00
2020-10-14 21:48:48 +02:00
2020-10-14 21:48:48 +02:00
2021-11-03 23:03:44 +01:00
2020-09-05 10:41:35 +02:00
2021-11-07 09:26:46 +01:00
2021-10-23 03:31:37 +02:00
2021-11-03 23:03:44 +01:00
2020-09-09 19:17:11 +02:00
2021-11-07 09:26:46 +01:00
2021-06-29 09:07:02 +02:00
2021-06-29 09:07:02 +02:00
2021-06-29 09:07:02 +02:00
2021-06-29 09:07:02 +02:00
2021-06-29 09:07:02 +02:00
2021-06-19 12:34:40 +02:00
2021-06-25 22:06:16 +02:00
2021-06-19 12:34:40 +02:00
2021-06-25 17:58:39 +02:00
2021-11-07 09:26:46 +01:00
2020-10-13 20:23:50 +02:00
2021-09-05 19:59:26 +02:00
2021-06-29 09:07:02 +02:00
2021-11-12 21:27:27 +01:00
2021-10-05 05:52:03 +02:00
2021-06-25 17:58:39 +02:00
2019-07-07 14:03:24 +02:00
2021-06-29 09:07:02 +02:00
2021-06-25 17:58:39 +02:00
2021-06-29 09:07:02 +02:00
2021-11-07 09:26:46 +01:00
2021-06-25 17:58:39 +02:00
2018-10-08 17:07:19 +02:00
2021-10-20 20:28:47 +02:00
2021-06-25 17:58:39 +02:00
2021-03-04 15:46:05 +01:00
2021-06-29 09:07:02 +02:00
2021-09-09 18:40:03 +02:00
2021-06-29 09:07:02 +02:00
2020-09-15 17:07:40 +02:00
2021-04-14 22:55:52 +02:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-09-13 09:29:20 +02:00
2021-11-03 20:54:40 +01:00
2021-06-25 22:06:16 +02:00
2021-06-14 00:06:59 +02:00
2021-06-25 22:06:16 +02:00
2021-06-25 17:58:39 +02:00
2021-11-07 09:26:46 +01:00
2020-11-03 23:28:55 +01:00
2020-11-03 23:28:55 +01:00
2021-06-25 17:58:39 +02:00
2020-05-26 18:50:33 +02:00
2020-05-26 18:50:33 +02:00
2021-04-14 09:17:54 +02:00
2018-10-06 13:04:14 +02:00
2019-11-16 21:57:18 +01:00
2020-10-20 19:13:43 +02:00
2021-04-14 09:17:54 +02:00
2020-10-20 19:13:43 +02:00
2021-04-14 22:55:52 +02:00
2021-04-14 22:55:52 +02:00
2021-04-14 09:17:54 +02:00
2021-01-06 18:50:46 +01:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-11-03 20:54:40 +01:00
2021-11-03 20:54:40 +01:00
2021-04-14 09:17:54 +02:00
2018-10-18 15:07:06 +02:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2020-07-13 12:35:53 +02:00
2021-06-18 13:23:50 +02:00
2021-06-25 17:58:39 +02:00
2020-02-18 23:34:56 +01:00
2020-02-18 23:34:56 +01:00
2020-02-18 23:34:56 +01:00
2021-06-25 17:58:39 +02:00
2019-11-16 21:57:18 +01:00
2021-06-25 17:58:39 +02:00
2019-11-20 16:43:55 +01:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-03-28 21:38:05 +02:00
2021-06-19 12:34:40 +02:00
2021-06-25 17:58:39 +02:00
2021-06-17 12:10:04 +02:00
2021-06-25 17:58:39 +02:00
2021-06-25 17:58:39 +02:00
2021-06-29 09:07:02 +02:00
2021-06-25 17:58:39 +02:00
2021-06-29 09:07:02 +02:00
2020-09-15 17:07:40 +02:00
2021-06-25 17:58:39 +02:00
2021-11-05 09:42:00 +01:00
2021-11-05 09:42:00 +01:00
2021-11-12 21:27:27 +01:00
2020-03-26 23:03:55 +01:00
2021-11-07 09:26:46 +01:00
2021-10-05 05:52:03 +02:00
2021-06-19 12:34:40 +02:00
2021-09-01 19:37:23 +02:00
2021-06-17 12:10:04 +02:00
2018-09-22 01:51:44 +02:00
2020-06-30 14:08:20 +02:00
2021-06-25 17:58:39 +02:00
2020-12-15 06:51:35 +01:00
2019-09-17 13:26:26 +02:00
2020-09-11 09:09:02 +02:00
2019-04-13 13:32:05 +02:00
2021-04-14 09:17:54 +02:00
2021-03-23 08:33:59 +01:00
2021-02-16 12:48:52 +01:00
2021-04-07 17:20:19 +02:00
2021-01-08 22:27:25 +01:00
2021-06-25 17:58:39 +02:00
2020-07-08 21:58:15 +02:00
2021-06-25 17:58:39 +02:00
2020-11-11 18:34:47 +01:00
2021-06-29 09:07:02 +02:00
2021-11-14 10:49:28 +01:00
2021-10-26 17:08:30 +02:00
2021-11-14 10:49:28 +01:00
2021-06-29 09:07:02 +02:00
2021-06-25 17:58:39 +02:00
2021-06-29 09:07:02 +02:00
2021-09-28 18:44:11 +02:00