task_system/sync_queue/
mod.rs1use std::{
2 collections::VecDeque,
3 fmt::{Debug, Formatter},
4 sync::{Arc, Mutex, MutexGuard, PoisonError},
5};
6
7mod sender;
8mod system;
9
10pub struct TaskSystem<T> {
12 interrupt: Arc<Mutex<bool>>,
13 queue: Arc<Mutex<VecDeque<T>>>,
14}
15
16pub struct TaskSender<T> {
18 refer: TaskSystem<T>,
19}
20
21fn send_task<T>(queue: &Arc<Mutex<VecDeque<T>>>, task: T) -> Result<(), PoisonError<MutexGuard<'_, VecDeque<T>>>> {
22 match queue.lock() {
23 Ok(mut o) => Ok(o.push_back(task)),
24 Err(e) => Err(e),
25 }
26}