implement server state/signal handling, depend on tokio-signal

This commit is contained in:
Dietmar Maurer
2019-04-08 12:21:29 +02:00
parent 5a12c0e2fb
commit 7a630df709
5 changed files with 166 additions and 3 deletions

View File

@ -410,7 +410,10 @@ impl WorkerTask {
}),
});
WORKER_TASK_LIST.lock().unwrap().insert(task_id, worker.clone());
let mut hash = WORKER_TASK_LIST.lock().unwrap();
hash.insert(task_id, worker.clone());
super::set_worker_count(hash.len());
Ok(worker)
}
@ -434,6 +437,7 @@ impl WorkerTask {
WORKER_TASK_LIST.lock().unwrap().remove(&task_id);
worker.log_result(result);
let _ = update_active_workers(None);
super::set_worker_count(WORKER_TASK_LIST.lock().unwrap().len());
Ok(())
}));
@ -464,6 +468,7 @@ impl WorkerTask {
worker.log_result(result);
let _ = update_active_workers(None);
p.send(()).unwrap();
super::set_worker_count(WORKER_TASK_LIST.lock().unwrap().len());
});
tokio::spawn(c.then(|_| Ok(())));