alnyan/yggdrasil: add thread module
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
|
||||
use crate::io::ErrorKind;
|
||||
|
||||
// #[path = "../unsupported/io.rs"]
|
||||
// pub mod io;
|
||||
#[path = "../unix/cmath.rs"]
|
||||
pub mod cmath;
|
||||
#[path = "../unix/os_str.rs"]
|
||||
@@ -14,9 +12,6 @@ pub mod path;
|
||||
pub mod pipe;
|
||||
#[path = "../unsupported/process.rs"]
|
||||
pub mod process;
|
||||
#[path = "../unsupported/thread.rs"]
|
||||
pub mod thread;
|
||||
pub mod thread_local_key;
|
||||
|
||||
pub mod alloc;
|
||||
pub mod args;
|
||||
@@ -30,6 +25,8 @@ pub mod net;
|
||||
pub mod once;
|
||||
pub mod os;
|
||||
pub mod stdio;
|
||||
pub mod thread;
|
||||
pub mod thread_local_key;
|
||||
pub mod time;
|
||||
|
||||
pub(self) use yggdrasil_rt;
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
use crate::ffi::CStr;
|
||||
use crate::io;
|
||||
use crate::num::NonZeroUsize;
|
||||
use crate::time::Duration;
|
||||
|
||||
pub struct Thread(!);
|
||||
|
||||
pub const DEFAULT_MIN_STACK_SIZE: usize = 8192;
|
||||
|
||||
impl Thread {
|
||||
pub unsafe fn new(_stack: usize, _p: Box<dyn FnOnce()>) -> io::Result<Thread> {
|
||||
yggdrasil_rt::sys::debug_trace("Thread::new()");
|
||||
loop {}
|
||||
}
|
||||
|
||||
pub fn yield_now() {
|
||||
unsafe {
|
||||
yggdrasil_rt::sys::debug_trace("Thread::yield_now()");
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_name(_name: &CStr) {
|
||||
unsafe {
|
||||
yggdrasil_rt::sys::debug_trace("Thread::set_name()");
|
||||
}
|
||||
}
|
||||
|
||||
pub fn sleep(dur: Duration) {
|
||||
unsafe { yggdrasil_rt::sys::nanosleep(dur) }
|
||||
}
|
||||
|
||||
pub fn join(self) {
|
||||
unsafe {
|
||||
yggdrasil_rt::sys::debug_trace("Thread::join()");
|
||||
}
|
||||
loop {}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn available_parallelism() -> io::Result<NonZeroUsize> {
|
||||
unsafe {
|
||||
yggdrasil_rt::sys::debug_trace("thread::available_parallelism()");
|
||||
}
|
||||
loop {}
|
||||
}
|
||||
|
||||
pub mod guard {
|
||||
pub type Guard = !;
|
||||
|
||||
pub unsafe fn current() -> Option<Guard> {
|
||||
None
|
||||
}
|
||||
|
||||
pub unsafe fn init() -> Option<Guard> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user