pub struct TaskManager {
tid_allocator: TidAllocator,
tasks: BTreeMap<u32, Arc<SpinLock<Task>>>,
}Expand description
任务管理器,负责管理所有任务的生命周期和调度 包括任务的创建、销毁和查找等功能 内部维护一个任务映射表,使用任务 ID 作为键 并提供分配唯一任务 ID 的功能 注意:该结构体的实例应当被包装在适当的同步原语中以确保线程安全
Fields§
§tid_allocator: TidAllocator§tasks: BTreeMap<u32, Arc<SpinLock<Task>>>Trait Implementations§
Source§impl TaskManagerTrait for TaskManager
impl TaskManagerTrait for TaskManager
Source§fn allocate_tid(&mut self) -> u32
fn allocate_tid(&mut self) -> u32
分配一个唯一的任务 ID
返回值: 分配的任务 ID
Source§fn get_task_cond(
&self,
cond: impl Fn(&Arc<SpinLock<Task>>) -> bool,
) -> Vec<Arc<SpinLock<Task>>>
fn get_task_cond( &self, cond: impl Fn(&Arc<SpinLock<Task>>) -> bool, ) -> Vec<Arc<SpinLock<Task>>>
根据条件获取符合条件的任务列表
参数: Read more
Source§fn get_process_threads(
&self,
process: Arc<SpinLock<Task>>,
) -> Vec<Arc<SpinLock<Task>>>
fn get_process_threads( &self, process: Arc<SpinLock<Task>>, ) -> Vec<Arc<SpinLock<Task>>>
获取进程(线程组)内所有线程
参数: Read more
Source§fn get_process_children(
&self,
process: Arc<SpinLock<Task>>,
) -> Vec<Arc<SpinLock<Task>>>
fn get_process_children( &self, process: Arc<SpinLock<Task>>, ) -> Vec<Arc<SpinLock<Task>>>
获取进程的所有子进程
参数: Read more
Source§fn send_signal(&self, task: Arc<SpinLock<Task>>, signal: usize) -> bool
fn send_signal(&self, task: Arc<SpinLock<Task>>, signal: usize) -> bool
发送信号给指定任务
参数: Read more
Source§fn get_all_tasks(&self) -> Vec<Arc<SpinLock<Task>>>
fn get_all_tasks(&self) -> Vec<Arc<SpinLock<Task>>>
获取所有任务
返回值: 所有任务的列表