diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-10-16 02:10:11 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-16 02:10:11 +0200 |
| commit | dcf972a2be2e122ee3e7cc86bbf4ff6751055337 (patch) | |
| tree | ac47f5daca0eab7f8b9283827d1da4d6a480a7a8 /library/std/src/sys/wasm/mod.rs | |
| parent | 0e4d19603bcea4e5cc54fee460c0582f9b31cb3f (diff) | |
| parent | f84f01c0148cfb2451775fcbf299a2e7b10b1e81 (diff) | |
| download | rust-dcf972a2be2e122ee3e7cc86bbf4ff6751055337.tar.gz rust-dcf972a2be2e122ee3e7cc86bbf4ff6751055337.zip | |
Rollup merge of #77619 - fusion-engineering-forks:wasm-parker, r=dtolnay
Use futex-based thread-parker for Wasm32.
This uses the existing `sys_common/thread_parker/futex.rs` futex-based thread parker (that was already used for Linux) for wasm32 as well (if the wasm32 atomics target feature is enabled, which is not the case by default).
Wasm32 provides the basic futex operations as instructions: https://webassembly.github.io/threads/syntax/instructions.html
These are now exposed from `sys::futex::{futex_wait, futex_wake}`, just like on Linux. So, `thread_parker/futex.rs` stays completely unmodified.
Diffstat (limited to 'library/std/src/sys/wasm/mod.rs')
| -rw-r--r-- | library/std/src/sys/wasm/mod.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/library/std/src/sys/wasm/mod.rs b/library/std/src/sys/wasm/mod.rs index 18295e1129a..11c6896f050 100644 --- a/library/std/src/sys/wasm/mod.rs +++ b/library/std/src/sys/wasm/mod.rs @@ -55,6 +55,8 @@ cfg_if::cfg_if! { pub mod mutex; #[path = "rwlock_atomics.rs"] pub mod rwlock; + #[path = "futex_atomics.rs"] + pub mod futex; } else { #[path = "../unsupported/condvar.rs"] pub mod condvar; |
