use brk_error::Result; use brk_indexer::Indexer; use vecdb::Exit; use super::Vecs; use crate::blocks; impl Vecs { pub(crate) fn compute( &mut self, indexer: &Indexer, blocks: &blocks::Vecs, exit: &Exit, ) -> Result<()> { self.db.sync_bg_tasks()?; let starting_lengths = indexer.safe_lengths(); self.spent.compute(indexer, exit)?; self.count.compute(indexer, blocks, exit)?; self.per_sec.compute(&self.count, &starting_lengths, exit)?; self.by_type.compute(indexer, exit)?; let exit = exit.clone(); self.db.run_bg(move |db| { let _lock = exit.lock(); db.compact_deferred_default() }); Ok(()) } }