rust_logic_graph/memory/
mod.rs1pub mod pool;
7pub mod metrics;
8
9pub use pool::{ContextPool, PoolConfig};
10pub use metrics::{MemoryMetrics, AllocationTracker};
11
12use std::sync::Arc;
13use parking_lot::RwLock;
14
15static MEMORY_METRICS: once_cell::sync::Lazy<Arc<RwLock<MemoryMetrics>>> =
17 once_cell::sync::Lazy::new(|| Arc::new(RwLock::new(MemoryMetrics::default())));
18
19pub fn global_metrics() -> Arc<RwLock<MemoryMetrics>> {
21 MEMORY_METRICS.clone()
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27
28 #[test]
29 fn test_global_metrics() {
30 let metrics = global_metrics();
31 assert_eq!(metrics.read().total_allocations(), 0);
32 }
33}