From 201fce5088dd1426e6a1f3cd1b8922b0a17e7aa8 Mon Sep 17 00:00:00 2001 From: Thomas Forgione Date: Thu, 21 Feb 2019 14:36:16 +0100 Subject: [PATCH] Release the mutex early, no need for spawning threads --- src/server.rs | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/server.rs b/src/server.rs index c97ae9d..72270b3 100644 --- a/src/server.rs +++ b/src/server.rs @@ -47,31 +47,30 @@ fn main() { for _ in rx { - let mut tasks = tasks.lock().unwrap(); + let uri = { + let mut tasks = tasks.lock().unwrap(); + tasks.pop() + }; - while let Some(uri) = tasks.pop() { + if let Some(uri) = uri { - thread::spawn(move || { + let builder = GeneralBuilder::new(); + let uri = percent_decode(uri.path().as_bytes()).decode_utf8().unwrap(); + let (path, args) = builder_arguments_from_string(&*uri); - let builder = GeneralBuilder::new(); - let uri = percent_decode(uri.path().as_bytes()).decode_utf8().unwrap(); - let (path, args) = builder_arguments_from_string(&*uri); + let path_string = path.to_str().unwrap(); + let start_string = format!("---- STARTING BUILD ---- from {} {}", path_string, args.join(" ")); + println!("{}", start_string.bold().green()); - let path_string = path.to_str().unwrap(); - let start_string = format!("---- STARTING BUILD ---- from {} {}", path_string, args.join(" ")); - println!("{}", start_string.bold().green()); - - match builder.build(&path, &args) { - Err(_) => { - println!("{}", "--------- FAIL ---------".bold().red()); - }, - Ok(_) => { - println!("{}", "----- SUCCESSFUL -----".bold().green()); - }, - }; - println!(); - - }); + match builder.build(&path, &args) { + Err(_) => { + println!("{}", "--------- FAIL ---------".bold().red()); + }, + Ok(_) => { + println!("{}", "----- SUCCESSFUL -----".bold().green()); + }, + }; + println!(); } }