pub fn db_read_access(&self) -> Result<RwLockReadGuard<B>, ChainStorageError> {
        self.db.read().map_err(|e| {
            error!(
                target: LOG_TARGET,
                "An attempt to get a read lock on the blockchain backend failed. {:?}", e
            );
            ChainStorageError::AccessError("Read lock on blockchain backend failed".into())
        })
    }
// Be careful about making this method public. Rather use `db_and_metadata_read_access`
// so that metadata and db are read in the correct order so that deadlocks don't occur
Be careful about making this method public. Rather use `db_and_metadata_read_access`
so that metadata and db are read in the correct order so that deadlocks don't occur
Be careful about making this method public . Rather use ` db_and_metadata_read_access ` so that metadata and db are read in the correct order so that deadlocks don ' t occur
pub fn db_read_access(&self) -> Result<RwLockReadGuard<B>, ChainStorageError> {
        self.db.read().map_err(|e| {
            error!(
                target: LOG_TARGET,
                "An attempt to get a read lock on the blockchain backend failed. {:?}", e
            );
            ChainStorageError::AccessError("Read lock on blockchain backend failed".into())
        })
    }
pub fn db_read_access ( & self ) -> Result < RwLockReadGuard < B > , ChainStorageError > { self . db . read ( ) . map_err ( | e | { error ! ( target LOG_TARGET " " e ) ; ChainStorageError :: AccessError ( " " . into ( ) ) } ) }
Be careful about making this method public.
Be careful about making this method public .
&self
&self