From 686908911185ab277f32229a03210c9e87c3ca3b Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Fri, 6 Apr 2018 15:52:58 -0600 Subject: [PATCH] Parallelize deserialize --- src/accountant_skel.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/accountant_skel.rs b/src/accountant_skel.rs index e45efb83e..cc556ae65 100644 --- a/src/accountant_skel.rs +++ b/src/accountant_skel.rs @@ -139,18 +139,14 @@ impl AccountantSkel { } pub fn deserialize_packets(p: &packet::Packets) -> Vec> { - // TODO: deserealize in parallel - let mut r = vec![]; - for x in &p.packets { - let rsp_addr = x.meta.addr(); - let sz = x.meta.size; - if let Ok(req) = deserialize(&x.data[0..sz]) { - r.push(Some((req, rsp_addr))); - } else { - r.push(None); - } - } - r + p.packets + .par_iter() + .map(|x| { + deserialize(&x.data[0..x.meta.size]) + .map(|req| (req, x.meta.addr())) + .ok() + }) + .collect() } fn process(