diff options
author | Kornel <kornel@geekhood.net> | 2020-02-19 09:57:50 +0000 |
---|---|---|
committer | Kornel <kornel@geekhood.net> | 2020-02-19 09:57:50 +0000 |
commit | a3d2e1eed6005927db4f8d54424983f38b087062 (patch) | |
tree | 7104610ea78e4b5f12018fca1fed0ad272112de7 /front_end | |
parent | a763037428ca03bc231d5268f2bf3017f0133204 (diff) |
Add tokio runtime
Diffstat (limited to 'front_end')
-rw-r--r-- | front_end/Cargo.toml | 1 | ||||
-rw-r--r-- | front_end/src/bin/crate_pages.rs | 9 | ||||
-rw-r--r-- | front_end/src/bin/website.rs | 9 |
3 files changed, 11 insertions, 8 deletions
diff --git a/front_end/Cargo.toml b/front_end/Cargo.toml index 265a179..771891d 100644 --- a/front_end/Cargo.toml +++ b/front_end/Cargo.toml @@ -33,3 +33,4 @@ parking_lot = "0.10.0" unicase = "2.6.0" either = "1.5.3" heck = "0.3.1" +tokio = { version = "0.2.11", features = ["rt-threaded", "macros"] } diff --git a/front_end/src/bin/crate_pages.rs b/front_end/src/bin/crate_pages.rs index 6a88da5..4a5cbbd 100644 --- a/front_end/src/bin/crate_pages.rs +++ b/front_end/src/bin/crate_pages.rs @@ -10,8 +10,9 @@ use std::fs; use std::path::PathBuf; use std::sync::Arc; -fn main() { - if let Err(e) = run(std::env::args().nth(1)) { +#[tokio::main] +async fn main() { + if let Err(e) = run(std::env::args().nth(1)).await { eprintln!("error: {}", e); for c in e.iter_chain() { eprintln!("error: -- {}", c); @@ -58,10 +59,10 @@ fn render(origin: &Origin, crates: &KitchenSink, path: &PathBuf, markup: &Render Ok(()) } -fn run(filter: Option<String>) -> Result<(), failure::Error> { +async fn run(filter: Option<String>) -> Result<(), failure::Error> { rayon::ThreadPoolBuilder::new().thread_name(|i| format!("rayon-{}", i)).build_global()?; - let crates = Arc::new(kitchen_sink::KitchenSink::new_default()?); + let crates = Arc::new(kitchen_sink::KitchenSink::new_default().await?); crates.prewarm(); let image_filter = Arc::new(ImageOptimAPIFilter::new("czjpqfbdkz", crates.main_cache_dir().join("images.db"))?); let markup = &Renderer::new_filter(Some(Highlighter::new()), image_filter); diff --git a/front_end/src/bin/website.rs b/front_end/src/bin/website.rs index d5883d7..6f6b582 100644 --- a/front_end/src/bin/website.rs +++ b/front_end/src/bin/website.rs @@ -26,8 +26,9 @@ use std::sync::Arc; /// /// See home_page.rs for interesting bits /// -fn main() { - if let Err(e) = run() { +#[tokio::main] +async fn main() { + if let Err(e) = run().await { eprintln!("Website generation failed: {}", e); for c in e.iter_chain() { eprintln!("error: -- {} {:?}", c, c); @@ -36,10 +37,10 @@ fn main() { } } -fn run() -> Result<(), failure::Error> { +async fn run() -> Result<(), failure::Error> { let mut out = BufWriter::new(File::create("public/index.html").context("write to public/index.html")?); let mut feed = BufWriter::new(File::create("public/atom.xml").context("write to public/index.html")?); - let crates = KitchenSink::new_default().context("init caches, data, etc.")?; + let crates = KitchenSink::new_default().await.context("init caches, data, etc.")?; let done_pages = Mutex::new(HashSet::with_capacity(5000)); let image_filter = Arc::new(ImageOptimAPIFilter::new("czjpqfbdkz", crates.main_cache_dir().join("images.db"))?); let markup = Renderer::new_filter(Some(Highlighter::new()), image_filter); |