MCPcopy Create free account
hub / github.com/RustOtomeLab/RustEng / new

Method new

src/executors/skip_executor.rs:18–47  ·  view source on GitHub ↗
(executor: Executor)

Source from the content-addressed store, hash-verified

16}
17
18impl SkipExecutor {
19 pub(crate) fn new(executor: Executor) -> (Self, Sender<()>) {
20 let (tx, mut rx) = channel::<()>(10);
21 let is_skip = Arc::new(AtomicBool::new(false));
22
23 // 创建定时器
24 let timer = slint::Timer::default();
25
26 let executor = Self {
27 timer,
28 executor,
29 is_skip: is_skip.clone(),
30 };
31
32 // 监听控制信号的任务
33 let is_skip_clone = is_skip.clone();
34 tokio::spawn(async move {
35 let mut start = true;
36 while rx.recv().await.is_some() {
37 if start {
38 is_skip_clone.store(true, Ordering::Relaxed);
39 start = false;
40 } else {
41 is_skip_clone.store(false, Ordering::Relaxed);
42 start = true;
43 }
44 }
45 });
46
47 (executor, tx)
48 }
49
50 pub(crate) fn start_timer(&mut self) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected