summaryrefslogtreecommitdiffstats
path: root/src/remake/switch.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/remake/switch.rs')
-rw-r--r--src/remake/switch.rs11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/remake/switch.rs b/src/remake/switch.rs
index 65f296f..903baea 100644
--- a/src/remake/switch.rs
+++ b/src/remake/switch.rs
@@ -38,6 +38,7 @@ use super::vote;
use crate::document::meta::{self, REMAKES};
use crate::document::replica::Epoch;
use crate::document::store;
+use crate::locks::MutexExt;
use crate::swarm::sync::paths_related;
const TICK: Duration = Duration::from_secs(1);
@@ -311,16 +312,10 @@ pub(super) async fn swap_in<H: Host>(
"Replayed late changes"
);
}
- *late_out
- .lock()
- .unwrap_or_else(|poisoned| poisoned.into_inner()) = late;
+ *late_out.lock_or_recover() = late;
Ok(new_doc)
})
.await?;
- let late = std::mem::take(
- &mut *late_stats
- .lock()
- .unwrap_or_else(|poisoned| poisoned.into_inner()),
- );
+ let late = std::mem::take(&mut *late_stats.lock_or_recover());
Ok((old, late))
}