tinyio-core 0.1.0

Core of tinyio.
Documentation
use std::sync::Arc;

use crossbeam::queue::SegQueue;

use crate::runtime::task::Task;

#[derive(Clone, Debug, Default)]
pub struct TaskQueue {
    queue: Arc<SegQueue<Arc<Task>>>,
}

impl TaskQueue {
    pub fn new() -> Self {
        Default::default()
    }

    pub fn pop(&self) -> Option<Arc<Task>> {
        self.queue.pop()
    }

    pub fn push(&self, task: Arc<Task>) {
        self.queue.push(task);
    }
}