From 61cc47d5067dc15b476fcd10e2e508dc9489eb0f Mon Sep 17 00:00:00 2001 From: Kornel Date: Sat, 15 Sep 2018 11:43:18 +0100 Subject: [PATCH] Parallel loading --- src/lib.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 38c872ed..93a3e3dd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -687,8 +687,15 @@ fn optimize_png(png: &mut PngData, original_data: &[u8], opts: &Options) -> PngR } } - let old_png = image::load_from_memory_with_format(original_data, ImageFormat::PNG); - let new_png = image::load_from_memory_with_format(&output, ImageFormat::PNG); + let (old_png, new_png) = { + let old_png = || image::load_from_memory_with_format(original_data, ImageFormat::PNG); + let new_png = || image::load_from_memory_with_format(&output, ImageFormat::PNG); + #[cfg(feature = "parallel")] + let res = rayon::join(old_png, new_png); + #[cfg(not(feature = "parallel"))] + let res = (old_png(), new_png()); + res + }; if let Ok(new_png) = new_png { if let Ok(old_png) = old_png {