mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-22 11:43:30 -05:00
The macOS malloc_zone_pressure_relief call (returns freed allocator pages after raw decodes) lived in identical copies inside the desktop app and the CLI. It now lives in lightcraft-sysmem, an isolated L0 helper crate and the workspace's only crate allowed unsafe: one #[allow(unsafe_code)] module, a SAFETY comment, a safe API that returns bytes released (0 off macOS), and tests (repeat calls, release after large frees, concurrent calls). Both apps' alloc_release.rs now just install the safe hook, and their crate roots gain #![forbid(unsafe_code)], so every production crate except sysmem forbids it. AGENTS.md/CLAUDE.md name the exception, per craftrules standards/never-crash.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
400 B
Rust
13 lines
400 B
Rust
//! Give memory the system allocator keeps after frees back to the system
|
|
//! ([`lightcraft_engine::memory::set_release_hook`]). The platform call lives in
|
|
//! `lightcraft-sysmem`, the workspace's only crate allowed `unsafe`.
|
|
|
|
/// Install the hook.
|
|
pub fn install() {
|
|
lightcraft_engine::memory::set_release_hook(release);
|
|
}
|
|
|
|
fn release() {
|
|
let _ = lightcraft_sysmem::release_free_memory();
|
|
}
|