From 953ec46e7450fff8e2664582bf0e9ac8c9ff7b05 Mon Sep 17 00:00:00 2001 From: Dheepak Krishnamurthy Date: Tue, 4 Aug 2020 05:19:06 -0600 Subject: [PATCH] Move thread to start_background_thread function --- src/app.rs | 66 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/src/app.rs b/src/app.rs index b31f01a..69cea9d 100644 --- a/src/app.rs +++ b/src/app.rs @@ -126,41 +126,43 @@ impl TTApp { colors: TColor::default(), }; app.update(); - let handle = { - let tasks = app.tasks.clone(); - let filter = app.filter.clone(); - thread::spawn(move || loop { - let mut task = Command::new("task"); - - task.arg("rc.json.array=on"); - task.arg("export"); - - match shlex::split(&filter) { - Some(cmd) => { - for s in cmd { - task.arg(&s); - } - } - None => { - task.arg(""); - } - } - - let output = task - .output() - .expect("Unable to run `task export`. Check documentation for more information."); - let data = String::from_utf8(output.stdout).unwrap(); - let imported = import(data.as_bytes()); - if let Ok(i) = imported { - *(tasks.lock().unwrap()) = i; - tasks.lock().unwrap().sort_by(cmp); - } - thread::sleep(Duration::from_millis(250)); - }) - }; + app.start_background_thread(); app } + pub fn start_background_thread(&self) { + let tasks = self.tasks.clone(); + let filter = self.filter.clone(); + thread::spawn(move || loop { + let mut task = Command::new("task"); + + task.arg("rc.json.array=on"); + task.arg("export"); + + match shlex::split(&filter) { + Some(cmd) => { + for s in cmd { + task.arg(&s); + } + } + None => { + task.arg(""); + } + } + + let output = task + .output() + .expect("Unable to run `task export`. Check documentation for more information."); + let data = String::from_utf8(output.stdout).unwrap(); + let imported = import(data.as_bytes()); + if let Ok(i) = imported { + *(tasks.lock().unwrap()) = i; + tasks.lock().unwrap().sort_by(cmp); + } + thread::sleep(Duration::from_millis(250)); + }); + } + pub fn draw(&mut self, f: &mut Frame) { let tasks_is_empty = self.tasks.lock().unwrap().is_empty(); let tasks_len = self.tasks.lock().unwrap().len();