update Runner.run signature + adapt message enum

This commit is contained in:
rmanach
2023-04-18 15:57:19 +02:00
parent a50b6c82ba
commit 35161d1c61
5 changed files with 25 additions and 8 deletions
+13 -1
View File
@@ -2,6 +2,7 @@ use std::collections::VecDeque;
use std::sync::{Arc, Condvar, Mutex};
use std::thread;
use crate::message::Message;
use crate::model::*;
pub struct Queue<T> {
@@ -88,7 +89,10 @@ impl<T: Runner + std::marker::Send + 'static> Manager<T> {
drop(guard);
Manager::<T>::set_worker_status(&worker, WorkerStatus::Running);
runner.run();
match runner.run() {
Ok(m) => Manager::<T>::manage_message(m),
Err(_e) => todo!(),
}
Manager::<T>::set_worker_status(&worker, WorkerStatus::Pending);
});
}
@@ -110,6 +114,14 @@ impl<T: Runner + std::marker::Send + 'static> Manager<T> {
true
}
fn manage_message(message: Message) {
match message {
Message::CheckDeploy(body) => {
println!("{:?}", body)
}
}
}
fn set_worker_status(worker: &Arc<Mutex<Worker>>, status: WorkerStatus) {
let mut guard = worker.lock().unwrap();
guard.set_status(status);