25 lines
686 B
Rust
25 lines
686 B
Rust
use std::{sync::{RwLock, Arc}};
|
|
|
|
use lazy_static::lazy_static;
|
|
|
|
use crate::{kernel::{thread::Thread, scheduler::Scheduler}, utility::list::List};
|
|
|
|
extern crate lazy_static;
|
|
|
|
lazy_static! {
|
|
pub static ref G_CURRENT_THREAD: RwLock<Option<Thread>> = RwLock::new(Option::None);
|
|
pub static ref G_THREAD_TO_BE_DESTROYED: RwLock<Option<Thread>> = RwLock::new(Option::None);
|
|
pub static ref G_ALIVE: RwLock<List<Arc<Thread>>> = RwLock::new(List::new());
|
|
pub static ref G_SCHEDULER: RwLock<Scheduler> = RwLock::new(Scheduler::new());
|
|
}
|
|
|
|
|
|
#[derive(PartialEq)]
|
|
pub enum ObjectType {
|
|
SemaphoreType,
|
|
LockType,
|
|
ConditionType,
|
|
FileType,
|
|
ThreadType,
|
|
InvalidType
|
|
} |