diff --git a/Cargo.toml b/Cargo.toml index 66d17ab..66d326e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ chrono = { version = "0.4", features = ["serde"] } fdlimit = "0.2" libc = "0.2" log = "0.4" -memmap2 = "0.6" +memmap2 = "0.7" named-lock = "0.3" rand = "0.8" serde = { version = "1.0", features = ["serde_derive"] } diff --git a/src/map.rs b/src/map.rs index 23e0b0c..3d4692d 100644 --- a/src/map.rs +++ b/src/map.rs @@ -52,9 +52,16 @@ impl Shmap { }); let shmap = Shmap { cipher }; - if let Err(e) = shmap.clean() { - warn!("Error while cleaning shmap keys: {}", e) - } + + // Run cleaning thread + let shmap_clone = shmap.clone(); + std::thread::spawn(move || loop { + if let Err(e) = shmap_clone.clone().clean() { + warn!("Error while cleaning shmap keys: {}", e) + } + std::thread::sleep(Duration::from_secs(30)); + }); + shmap }