pub fn persist_head_and_fork_choice(&self) -> Result<(), Error> {
        let mut batch = vec![];

        let _head_timer = metrics::start_timer(&metrics::PERSIST_HEAD);
        batch.push(self.persist_head_in_batch());

        let _fork_choice_timer = metrics::start_timer(&metrics::PERSIST_FORK_CHOICE);
        batch.push(self.persist_fork_choice_in_batch());

        self.store.hot_db.do_atomically(batch)?;

        Ok(())
    }
/// Persists the head tracker and fork choice.
///
/// We do it atomically even though no guarantees need to be made about blocks from
/// the head tracker also being present in fork choice.
Persists the head tracker and fork choice.
We do it atomically even though no guarantees need to be made about blocks from
the head tracker also being present in fork choice.
Persists the head tracker and fork choice . We do it atomically even though no guarantees need to be made about blocks from the head tracker also being present in fork choice .
pub fn persist_head_and_fork_choice(&self) -> Result<(), Error> {
        let mut batch = vec![];
        let _head_timer = metrics::start_timer(&metrics::PERSIST_HEAD);
        batch.push(self.persist_head_in_batch());
        let _fork_choice_timer = metrics::start_timer(&metrics::PERSIST_FORK_CHOICE);
        batch.push(self.persist_fork_choice_in_batch());
        self.store.hot_db.do_atomically(batch)?;
        Ok(())
    }
pub fn persist_head_and_fork_choice ( & self ) -> Result < ( ) , Error > { let mut batch = vec ! [ ] ; let _head_timer = metrics :: start_timer ( & metrics :: PERSIST_HEAD ) ; batch . push ( self . persist_head_in_batch ( ) ) ; let _fork_choice_timer = metrics :: start_timer ( & metrics :: PERSIST_FORK_CHOICE ) ; batch . push ( self . persist_fork_choice_in_batch ( ) ) ; self . store . hot_db . do_atomically ( batch ) ? ; Ok ( ( ) ) }
Persists the head tracker and fork choice.
Persists the head tracker and fork choice .
&self