From badf5d541254a5895f740b1f21e88e76a235dd23 Mon Sep 17 00:00:00 2001 From: Stephen Akridge Date: Wed, 30 May 2018 12:49:15 -0700 Subject: [PATCH] Add window recovery --- src/streamer.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/streamer.rs b/src/streamer.rs index 8453a4b9af..2f899194fe 100644 --- a/src/streamer.rs +++ b/src/streamer.rs @@ -170,11 +170,18 @@ fn find_next_missing( fn repair_window( locked_window: &Arc>>>, crdt: &Arc>, + _recycler: &BlobRecycler, last: &mut usize, times: &mut usize, consumed: &mut usize, received: &mut usize, ) -> Result<()> { + #[cfg(feature = "erasure")] + { + if erasure::recover(_recycler, &mut locked_window.write().unwrap(), *consumed).is_err() { + info!("erasure::recover failed"); + } + } let reqs = find_next_missing(locked_window, crdt, consumed, received)?; //exponential backoff if *last != *consumed { @@ -353,6 +360,7 @@ pub fn window( let _ = repair_window( &window, &crdt, + &recycler, &mut last, &mut times, &mut consumed,