Contact emails (alphasorted)
bi...@chromium.org, dsc...@chromium.org, hab...@chromium.org, tit...@chromium.org
Explainer
Provide low-level building blocks for pthreads-style shared memory: shared memory between threads, atomics and futexes.
New atomic memory operators, including loads/stores annotated with their atomic ordering property, will follow a model compatible with the C++11 memory model (with some differences), similarly to the PNaCl atomic support and the SharedArrayBuffer support in JavaScript. Even when there are data races, WebAssembly will ensure that the nondeterminism remains limited and local.
There is ongoing work to formalize the memory model used by SharedArrayBuffer. This can be used by WebAssembly threads, since both JavaScript and WebAssembly are intended to be able to communicate through SharedArrayBuffer.
More details can be found in https://github.com/WebAssembly/threads/blob/master/proposals/threads/Overview.md.
Design doc/Spec
Spec issue: https://github.com/WebAssembly/design/issues/1073
Design doc: https://docs.google.com/document/d/1e0Ye-75niAVqdsCDCxJEMYjAh3OC3ezQIsLc4YcFHj4/edit
Tracking issue: https://bugs.chromium.org/p/chromium/issues/detail?id=754910
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/GMZIcOoFFqw
Goals for experimentation
Real, concurrent threading capabilities with shared memory is something new on the web platform. Thus we are very eager to get early web developer feedback to further finetune the API and ergonomics. In addition we need to better understand the scale web developers might want to use the feature, especially regarding memory consumption and runtime performance. Too, we are interested in early feedback regarding the security considerations.
Experimental timeline
Start: M70 Beta
End: ~M73 Stable (Depends on potential spec changes; Updates expected after the Wasm CG meeting in October)
Any risks when the experiment finishes?
Some partners might depend on the actual implementation to keep on working. They are aware though that the API is experimental and might/will change during the trial.
Ongoing technical constraints
The feature should only be enabled on platforms that fully support Site Isolation: Chrome OS, Windows, Mac, Linux.
Debuggability
No additional support should be needed.
Will this feature be supported on all five Blink platforms supported by Origin Trials (Windows, Mac, Linux, Chrome OS, and Android)?
No, it will only be available on platforms that support Site Isolation: Windows, Mac, Linux, Chrome OS
Link to entry on the feature dashboard
https://www.chromestatus.com/features/5724132452859904 .
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAF2MX8j0nfaSWaAUB_Jc_2TE8fJsJaqASYyAdPeu1HY-1obyrQ%40mail.gmail.com.