about summary refs log tree commit diff
path: root/library/std/src
diff options
context:
space:
mode:
authorJack Huey <31162821+jackh726@users.noreply.github.com>2021-02-02 16:01:38 -0500
committerGitHub <noreply@github.com>2021-02-02 16:01:38 -0500
commit76be6bb4de596ad24c62dd52baeb0cb56c8937ae (patch)
treebee4e8d6d81ac203d243a9a49276d3de41cedbfc /library/std/src
parent71792d822c713b66616b2b5dde1fa9cffe3ab21d (diff)
parentc7f4154c6a839d31abcbb74be4c9b2404ae3a2ec (diff)
downloadrust-76be6bb4de596ad24c62dd52baeb0cb56c8937ae.tar.gz
rust-76be6bb4de596ad24c62dd52baeb0cb56c8937ae.zip
Rollup merge of #81530 - ojeda:sys-use-abort-instead-of-wasm32-unreachable, r=Mark-Simulacrum
sys: use `process::abort()` instead of `arch::wasm32::unreachable()`

Rationale:

  - `abort()` lowers to `wasm32::unreachable()` anyway.
  - `abort()` isn't `unsafe`.
  - `abort()` matches the comment better.
  - `abort()` avoids confusion by future readers (e.g. https://github.com/rust-lang/rust/pull/81527): the naming of wasm's `unreachable` instruction is a bit unfortunate because it is not related to the `unreachable()` intrinsic (intended to trigger UB).

Codegen is likely to be different since `unreachable()` is `inline` while `abort()` is `cold`. Since it doesn't look like we are expecting here to trigger this case, the latter seems better anyway.
Diffstat (limited to 'library/std/src')
-rw-r--r--library/std/src/sys/wasm/thread.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/library/std/src/sys/wasm/thread.rs b/library/std/src/sys/wasm/thread.rs
index 95a9230aa78..5eafb77da1d 100644
--- a/library/std/src/sys/wasm/thread.rs
+++ b/library/std/src/sys/wasm/thread.rs
@@ -86,7 +86,7 @@ pub fn my_id() -> u32 {
         if MY_ID == 0 {
             let mut cur = NEXT_ID.load(SeqCst);
             MY_ID = loop {
-                let next = cur.checked_add(1).unwrap_or_else(|| crate::arch::wasm32::unreachable());
+                let next = cur.checked_add(1).unwrap_or_else(|| crate::process::abort());
                 match NEXT_ID.compare_exchange(cur, next, SeqCst, SeqCst) {
                     Ok(_) => break next,
                     Err(i) => cur = i,