alnyan/yggdrasil: add thread module

This commit is contained in:
2023-07-17 20:36:34 +03:00
parent 22228b3aa5
commit defb036456
2 changed files with 59 additions and 5 deletions
+2 -5
View File
@@ -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;
+57
View File
@@ -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
}
}