diff options
Diffstat (limited to 'src/solvers/gpu')
-rw-r--r-- | src/solvers/gpu/host.rs | 2 | ||||
-rw-r--r-- | src/solvers/gpu/output.rs | 19 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/solvers/gpu/host.rs b/src/solvers/gpu/host.rs index d67138e..4fe835a 100644 --- a/src/solvers/gpu/host.rs +++ b/src/solvers/gpu/host.rs @@ -68,7 +68,7 @@ impl Host { output_sender, }; let handle = std::thread::Builder::new() - .name("GPU Deamon".into()) + .name("GPU Host Deamon".into()) .spawn(move || { solver.run(); }) diff --git a/src/solvers/gpu/output.rs b/src/solvers/gpu/output.rs index 4e52ab4..9cbef1a 100644 --- a/src/solvers/gpu/output.rs +++ b/src/solvers/gpu/output.rs @@ -30,15 +30,18 @@ impl InBuffer { .expect("Channel to Output Daemon broke") { Message::ResultMessage(results) => { - if let Some(result_walls) = self.row_requests.get(&results.id) { - return Some(Self::calc_results( - results.valid_walls().as_ref(), - result_walls, - )); - } else { - if results.data.iter().any(|x| *x != 0) { - self.results_requests.insert(results.id, results); + if results.data.iter().any(|x| *x != 0) { + println!("Horay results!"); + if let Some(result_walls) = self.row_requests.get(&results.id) { + return Some(Self::calc_results( + results.valid_walls().as_ref(), + result_walls, + )); } else { + self.results_requests.insert(results.id, results); + } + } else { + if self.row_requests.remove(&results.id).is_none() { self.banned_requests.insert(results.id); } } |