use std::rc::Rc;
use super::{channel::Receiver, task::Task};
pub(crate) struct Executor {
scheduled_tasks: Receiver<Rc<Task>>,
}
impl Executor {
pub fn new(scheduled_tasks: Receiver<Rc<Task>>) -> Self {
Self { scheduled_tasks }
}
pub fn process_task(&self) -> bool {
if let Some(task) = self.scheduled_tasks.try_recv() {
task.poll();
true
} else {
false
}
}
}