use crate::records::task_scheduler::{TaskQueue, TaskScheduler};
use alloc::sync::Arc;
use alloc::vec::Vec;
impl TaskScheduler {
pub fn task_scheduler_task_scheduler(thread_count: u32) -> Self {
let tasks = Arc::new(TaskQueue::new());
let mut workers = Vec::with_capacity(thread_count as usize);
for _ in 0..thread_count {
let tasks = Arc::clone(&tasks);
let handle = std::thread::spawn(move || {
crate::methods::task_scheduler_worker_function::task_scheduler_worker_function(
&tasks,
);
});
workers.push(handle);
}
TaskScheduler {
thread_count,
workers,
tasks,
}
}
}