pub type SharedEngine = Arc<RwLock<EvolutionEngine>>;Expand description
Shared engine pointer — what the proxy and any future shared-state worker pool should hold.
Use this instead of Clone whenever multiple async tasks need
access to the same engine’s cache + corpus + gene_stats. Cloning
the Arc is O(1); cloning the engine itself is O(grid + archive +
gene_stats) and produces an independent engine with a fresh
(empty) cache.
Locking discipline:
- hot read paths (cache hits,
diversity_score,best()) →read() - mutation paths (
submit_evaluations,gene_statsupdates, checkpoint persistence) →write() - never hold the write lock across an
awaitthat performs network I/O — drop it before the await, re-acquire after
Aliased Type§
pub struct SharedEngine { /* private fields */ }