@@ -1,5 +1,6 @@
use std::marker::PhantomData;
+use log::debug;
use sled::Batch;
use crate::{
@@ -35,6 +36,11 @@ impl<T: Encodable + Decodable> DataStore<T> {
Ok(Self { _db, logs, commits, commits_length, voted_for, current_term })
}
+ pub async fn cancel(&self) -> Result<()> {
+ debug!(target: "raft", "DataStore flush");
+ self._db.flush_async().await?;
+ Ok(())
+ }
pub struct DataTree<T> {
@@ -216,6 +216,7 @@ impl<T: Decodable + Encodable + Clone> Raft<T> {
load_ips_task.cancel().await;
p2p_recv_task.cancel().await;
p2p_task.cancel().await;
+ self.datastore.cancel().await?;
Ok(())