Revert "No nursery for render thread"

This reverts commit 59da2337bd8076b147e4eb76f7ad82d17ac0c8c2.
This commit is contained in:
Jeremy Wall 2020-07-31 14:40:37 -04:00
parent 59da2337bd
commit e9d4a770d3

View File

@ -216,35 +216,42 @@ fn main() -> anyhow::Result<()> {
}); });
parent.schedule(Box::new(connect_thread)); parent.schedule(Box::new(connect_thread));
} }
debug!("attempting to start server on {}", LISTENHOST.flag); let stop_signal = stop_signal.clone();
let server = match tiny_http::Server::http(LISTENHOST.flag) { let render_thread = thread::Pending::new(move || {
Ok(server) => server, debug!("attempting to start server on {}", LISTENHOST.flag);
Err(err) => { let server = match tiny_http::Server::http(LISTENHOST.flag) {
let mut signal = stop_signal.write().unwrap(); Ok(server) => server,
*signal = true; Err(err) => {
error!("Error starting render thread {}", err); let mut signal = stop_signal.write().unwrap();
error!("Shutting down all threads..."); *signal = true;
return Err(anyhow::Error::msg(format!("{}", err))); error!("Error starting render thread {}", err);
} error!("Shutting down all threads...");
}; return;
loop { }
info!("Waiting for request"); };
match server.recv() { loop {
Ok(req) => { info!("Waiting for request");
let mut buffer = vec![]; match server.recv() {
// Gather the metrics. Ok(req) => {
let encoder = TextEncoder::new(); let mut buffer = vec![];
let metric_families = r.gather(); // Gather the metrics.
encoder.encode(&metric_families, &mut buffer).unwrap(); let encoder = TextEncoder::new();
let metric_families = r.gather();
encoder.encode(&metric_families, &mut buffer).unwrap();
let response = tiny_http::Response::from_data(buffer).with_status_code(200); let response = tiny_http::Response::from_data(buffer).with_status_code(200);
if let Err(e) = req.respond(response) { if let Err(e) = req.respond(response) {
info!("Error responding to request {}", e); info!("Error responding to request {}", e);
}
}
Err(e) => {
info!("Invalid http request! {}", e);
} }
} }
Err(e) => {
info!("Invalid http request! {}", e);
}
} }
} });
parent.schedule(Box::new(render_thread));
// Blocks forever
parent.wait();
Ok(())
} }