summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2020-01-12 20:36:45 +0100
committerDennis Kobert <dennis@kobert.dev>2020-01-12 20:36:45 +0100
commit70fa220f7a2b1b2275679547ac21768ab657cea2 (patch)
treed5d618aaac9968a555e59f9bb5df148026de0160 /src
parente3b8e2dadec5009ec1c3de72a202583f65129993 (diff)
Add diagnostic script, prune result evaluation
Diffstat (limited to 'src')
-rw-r--r--src/solvers/gpu/host.rs2
-rw-r--r--src/solvers/gpu/output.rs19
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);
}
}