diff options
| author | Martin Kröning <martin.kroening@eonerc.rwth-aachen.de> | 2024-08-26 00:04:00 +0200 |
|---|---|---|
| committer | Martin Kröning <martin.kroening@eonerc.rwth-aachen.de> | 2024-08-26 00:04:00 +0200 |
| commit | edeefc532f645386db828a956cb50702e15f8b03 (patch) | |
| tree | 4bb7d32a229b0f4f2ecc6f4f8eb93704aa21b967 | |
| parent | 687c8a1eabf039be5cccc9cfefb55dd825378b02 (diff) | |
| download | rust-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.rs | 3 |
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); } } |
