This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

1mod admission; 2mod cpu; 3mod disk; 4mod fsio; 5mod mem; 6mod slots; 7 8pub use admission::{ 9 AdmitGuard, Burst, GlobalInflight, HostKey, HostPacer, LimitConfig, PeerPacer, PerPeerInflight, 10 PreAuthLimiter, RateLimit, RefillMicros, Refusal, SubjectKey, SubjectPacer, 11}; 12pub use cpu::{Saturate, ThreadCount, gix_thread_limit, map_chunks, map_spans, saturate, threads}; 13pub use disk::{ 14 BelowFloor, DiskFloorBytes, DiskGovernor, DiskReservation, FreeBytes, ReserveBytes, 15 free_bytes as disk_free_bytes, 16}; 17pub use fsio::{ 18 FileMode, FsError, atomic_write, atomic_write_bytes, clear_staging, clear_stale, clear_temps, 19 fsync_path, staging_nonce, 20}; 21pub use mem::{ 22 AvailableBytes, BudgetSource, ChurnBytes, ConnectivityObjects, DecayMs, MemoryBudget, 23 MemoryHighBytes, PayloadBytes, WorkingSetBytes, advert_cache_bytes, available_bytes, 24 cache_shed_warranted, decay_warrants_apply, externalize_connectivity, ingest_admits, 25 ingest_admits_churn, ingest_base_budget, ingest_thread_limit, object_cache_bytes, 26 pack_cache_bytes, target_decay, 27}; 28pub use slots::{PackSlots, ReceiveSlots, ResolveSlots, SlotPermit, Slots}; 29 30#[derive(Clone, Copy, Debug, Default)] 31pub struct Ceilings { 32 pub max_threads: Option<ThreadCount>, 33 pub max_memory: Option<MemoryBudget>, 34} 35 36#[derive(Clone, Copy, Debug)] 37pub struct Report { 38 pub threads: ThreadCount, 39 pub memory: Option<MemoryBudget>, 40 pub memory_source: BudgetSource, 41 pub memory_high_bytes: Option<MemoryHighBytes>, 42} 43 44pub fn init(ceilings: Ceilings) -> Report { 45 let threads = cpu::install( 46 ceilings 47 .max_threads 48 .unwrap_or_else(|| ThreadCount::new(default_threads())), 49 ); 50 let (memory, memory_source) = mem::install(ceilings.max_memory); 51 let memory_high_bytes = mem::try_set_memory_high(); 52 Report { 53 threads, 54 memory, 55 memory_source, 56 memory_high_bytes, 57 } 58} 59 60fn default_threads() -> usize { 61 std::thread::available_parallelism() 62 .map(std::num::NonZeroUsize::get) 63 .unwrap_or(1) 64}