diff --git a/cache_utils/src/mmap.rs b/cache_utils/src/mmap.rs index f02662f..65968b2 100644 --- a/cache_utils/src/mmap.rs +++ b/cache_utils/src/mmap.rs @@ -1,5 +1,6 @@ #![cfg(feature = "std")] +use core::ffi::c_void; use core::ptr::null_mut; use core::slice::{from_raw_parts, from_raw_parts_mut}; use nix::sys::mman; @@ -43,3 +44,11 @@ impl MMappedMemory { unsafe { from_raw_parts_mut(self.pointer, self.size) } } } + +impl Drop for MMappedMemory { + fn drop(&mut self) { + unsafe { + mman::munmap(self.pointer as *mut c_void, self.size).unwrap(); + } + } +}