about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Kröning <martin.kroening@eonerc.rwth-aachen.de>2024-08-26 00:04:00 +0200
committerMartin Kröning <martin.kroening@eonerc.rwth-aachen.de>2024-08-26 00:04:00 +0200
commitedeefc532f645386db828a956cb50702e15f8b03 (patch)
tree4bb7d32a229b0f4f2ecc6f4f8eb93704aa21b967
parent687c8a1eabf039be5cccc9cfefb55dd825378b02 (diff)
downloadrust-edeefc532f645386db828a956cb50702e15f8b03.tar.gz
rust-edeefc532f645386db828a956cb50702e15f8b03.zip
pal/hermit: saturate `usleep` microseconds at `u64::MAX`
Signed-off-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
-rw-r--r--library/std/src/sys/pal/hermit/thread.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/library/std/src/sys/pal/hermit/thread.rs b/library/std/src/sys/pal/hermit/thread.rs
index bc70b3ac170..4c0c0919f47 100644
--- a/library/std/src/sys/pal/hermit/thread.rs
+++ b/library/std/src/sys/pal/hermit/thread.rs
@@ -78,9 +78,10 @@ impl Thread {
     #[inline]
     pub fn sleep(dur: Duration) {
         let micros = dur.as_micros() + if dur.subsec_nanos() % 1_000 > 0 { 1 } else { 0 };
+        let micros = u64::try_from(micros).unwrap_or(u64::MAX);
 
         unsafe {
-            hermit_abi::usleep(micros as u64);
+            hermit_abi::usleep(micros);
         }
     }