aboutsummaryrefslogtreecommitdiff
path: root/src/worker_ws.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/worker_ws.rs')
-rw-r--r--src/worker_ws.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/worker_ws.rs b/src/worker_ws.rs
index 5f0e47c..526de82 100644
--- a/src/worker_ws.rs
+++ b/src/worker_ws.rs
@@ -163,8 +163,9 @@ impl State {
worker.task_kinds = task_kinds;
}
WorkerRequest::Metadata { key, data } => {
- let m = self.metadata.entry(key).or_default();
+ let m = self.metadata.entry(key.clone()).or_default();
m.extend(data);
+ self.send_webui_task_update(&key);
}
WorkerRequest::Enqueue {
key,
@@ -173,12 +174,14 @@ impl State {
if ignore_complete {
if !self.loading.contains(&key) {
self.complete.remove(&key);
- self.queue.insert(key);
+ self.queue.insert(key.clone());
+ self.send_webui_task_update(&key);
self.dispatch_work();
}
} else {
if !(self.complete.contains(&key) || self.loading.contains(&key)) {
- self.queue.insert(key);
+ self.queue.insert(key.clone());
+ self.send_webui_task_update(&key);
self.dispatch_work();
}
}
@@ -187,11 +190,13 @@ impl State {
if force {
self.queue.remove(&key);
self.loading.remove(&key);
- self.complete.insert(key);
+ self.complete.insert(key.clone());
+ self.send_webui_task_update(&key);
} else {
if worker.assigned_tasks.remove(&key) {
self.loading.remove(&key);
- self.complete.insert(key);
+ self.complete.insert(key.clone());
+ self.send_webui_task_update(&key);
} else {
bail!("task was not assigned")
}
@@ -231,6 +236,7 @@ impl State {
for (w, key) in to_send {
self.queue.remove(&key);
self.loading.insert(key.clone());
+ self.send_webui_task_update(&key);
self.send_to_worker(
w,
WorkerResponse::Work {