diff options
Diffstat (limited to 'src/libstd/sys/hermit/thread.rs')
| -rw-r--r-- | src/libstd/sys/hermit/thread.rs | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/src/libstd/sys/hermit/thread.rs b/src/libstd/sys/hermit/thread.rs index 34f88eea0d7..7e3fb4c6d20 100644 --- a/src/libstd/sys/hermit/thread.rs +++ b/src/libstd/sys/hermit/thread.rs @@ -1,36 +1,14 @@ #![allow(dead_code)] use crate::ffi::CStr; -use crate::fmt; use crate::io; use crate::mem; use crate::sys::hermit::abi; +use crate::sys::hermit::fast_thread_local::run_dtors; use crate::time::Duration; pub type Tid = abi::Tid; -/// Priority of a task -#[derive(PartialEq, Eq, PartialOrd, Ord, Debug, Clone, Copy)] -pub struct Priority(u8); - -impl Priority { - pub const fn into(self) -> u8 { - self.0 - } - - pub const fn from(x: u8) -> Self { - Priority(x) - } -} - -impl fmt::Display for Priority { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{}", self.0) - } -} - -pub const NORMAL_PRIO: Priority = Priority::from(2); - pub struct Thread { tid: Tid, } @@ -51,8 +29,8 @@ impl Thread { let ret = abi::spawn( &mut tid as *mut Tid, thread_start, - p as usize, - Priority::into(NORMAL_PRIO), + &*p as *const _ as *const u8 as usize, + abi::Priority::into(abi::NORMAL_PRIO), core_id, ); @@ -69,6 +47,9 @@ impl Thread { unsafe { // Finally, let's run some code. Box::from_raw(main as *mut Box<dyn FnOnce()>)(); + + // run all destructors + run_dtors(); } } } |
