Merge pull request #802 from pop-os/mmap

fix(applet): set mmap threshold to lower memory usage
This commit is contained in:
Jeremy Soller 2025-02-12 09:36:05 -07:00 committed by GitHub
commit c440b20c2f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,6 +1,28 @@
mod file_manager;
/// Access glibc malloc tunables.
#[cfg(target_env = "gnu")]
mod malloc {
use std::os::raw::c_int;
const M_MMAP_THRESHOLD: c_int = -3;
extern "C" {
fn mallopt(param: c_int, value: c_int) -> c_int;
}
/// Prevents glibc from hoarding memory via memory fragmentation.
pub fn limit_mmap_threshold() {
unsafe {
mallopt(M_MMAP_THRESHOLD, 65536);
}
}
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
#[cfg(target_env = "gnu")]
malloc::limit_mmap_threshold();
//TODO: move file manager service to its own daemon?
let _conn_res = zbus::blocking::connection::Builder::session()?
.name("org.freedesktop.FileManager1")?