mirror of
https://github.com/zaphar/durnitisp.git
synced 2025-07-22 18:19:48 -04:00
Revert "No nursery for render thread"
This reverts commit 59da2337bd8076b147e4eb76f7ad82d17ac0c8c2.
This commit is contained in:
parent
59da2337bd
commit
e9d4a770d3
61
src/main.rs
61
src/main.rs
@ -216,35 +216,42 @@ fn main() -> anyhow::Result<()> {
|
||||
});
|
||||
parent.schedule(Box::new(connect_thread));
|
||||
}
|
||||
debug!("attempting to start server on {}", LISTENHOST.flag);
|
||||
let server = match tiny_http::Server::http(LISTENHOST.flag) {
|
||||
Ok(server) => server,
|
||||
Err(err) => {
|
||||
let mut signal = stop_signal.write().unwrap();
|
||||
*signal = true;
|
||||
error!("Error starting render thread {}", err);
|
||||
error!("Shutting down all threads...");
|
||||
return Err(anyhow::Error::msg(format!("{}", err)));
|
||||
}
|
||||
};
|
||||
loop {
|
||||
info!("Waiting for request");
|
||||
match server.recv() {
|
||||
Ok(req) => {
|
||||
let mut buffer = vec![];
|
||||
// Gather the metrics.
|
||||
let encoder = TextEncoder::new();
|
||||
let metric_families = r.gather();
|
||||
encoder.encode(&metric_families, &mut buffer).unwrap();
|
||||
let stop_signal = stop_signal.clone();
|
||||
let render_thread = thread::Pending::new(move || {
|
||||
debug!("attempting to start server on {}", LISTENHOST.flag);
|
||||
let server = match tiny_http::Server::http(LISTENHOST.flag) {
|
||||
Ok(server) => server,
|
||||
Err(err) => {
|
||||
let mut signal = stop_signal.write().unwrap();
|
||||
*signal = true;
|
||||
error!("Error starting render thread {}", err);
|
||||
error!("Shutting down all threads...");
|
||||
return;
|
||||
}
|
||||
};
|
||||
loop {
|
||||
info!("Waiting for request");
|
||||
match server.recv() {
|
||||
Ok(req) => {
|
||||
let mut buffer = vec![];
|
||||
// Gather the metrics.
|
||||
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);
|
||||
if let Err(e) = req.respond(response) {
|
||||
info!("Error responding to request {}", e);
|
||||
let response = tiny_http::Response::from_data(buffer).with_status_code(200);
|
||||
if let Err(e) = req.respond(response) {
|
||||
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(())
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user