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}