task_system/sync_queue/sender/
mod.rs

1use super::*;
2
3impl<T> Clone for TaskSender<T> {
4    fn clone(&self) -> Self {
5        TaskSender { refer: TaskSystem { interrupt: self.refer.interrupt.clone(), queue: self.refer.queue.clone() } }
6    }
7}
8
9impl<T> From<TaskSystem<T>> for TaskSender<T> {
10    fn from(refer: TaskSystem<T>) -> Self {
11        TaskSender { refer }
12    }
13}
14
15impl<T> TaskSender<T> {
16    /// Send a task to the task system.
17    ///
18    /// # Arguments
19    ///
20    /// * `task`:
21    ///
22    /// returns: Result<(), PoisonError<MutexGuard<VecDeque<T, Global>>>>
23    ///
24    /// # Examples
25    ///
26    /// ```
27    /// use task_system::TaskSystem;
28    /// let ts = TaskSystem::default();
29    /// let ss = ts.sender();
30    /// assert!(ss.send(1))
31    /// ```
32    pub fn send(&self, task: T) -> bool {
33        send_task(&self.refer.queue, task).is_ok()
34    }
35}