pub struct LoadedPrograms {
pub program_runtime_environment_v1: Arc<BuiltinProgram<InvokeContext<'static>>>,
pub stats: Stats,
/* private fields */
}Fields§
§program_runtime_environment_v1: Arc<BuiltinProgram<InvokeContext<'static>>>Globally shared RBPF config and syscall registry
stats: StatsImplementations§
source§impl LoadedPrograms
impl LoadedPrograms
sourcepub fn replenish(
&mut self,
key: Pubkey,
entry: Arc<LoadedProgram>
) -> (bool, Arc<LoadedProgram>)
pub fn replenish( &mut self, key: Pubkey, entry: Arc<LoadedProgram> ) -> (bool, Arc<LoadedProgram>)
Refill the cache with a single entry. It’s typically called during transaction loading,
when the cache doesn’t contain the entry corresponding to program key.
The function dedupes the cache, in case some other thread replenished the entry in parallel.
sourcepub fn assign_program(
&mut self,
key: Pubkey,
entry: Arc<LoadedProgram>
) -> Arc<LoadedProgram>
pub fn assign_program( &mut self, key: Pubkey, entry: Arc<LoadedProgram> ) -> Arc<LoadedProgram>
Assign the program entry to the given key in the cache.
This is typically called when a deployed program is managed (un-/re-/deployed) via
loader instructions. Because of the cooldown, entires can not have the same
deployment_slot and effective_slot.
sourcepub fn prune_feature_set_transition(&mut self)
pub fn prune_feature_set_transition(&mut self)
On the epoch boundary this removes all programs of the outdated feature set
pub fn prune_by_deployment_slot(&mut self, slot: Slot)
sourcepub fn prune<F: ForkGraph>(&mut self, fork_graph: &F, new_root: Slot)
pub fn prune<F: ForkGraph>(&mut self, fork_graph: &F, new_root: Slot)
Before rerooting the blockstore this removes all programs of orphan forks
sourcepub fn extract<S: WorkingSlot>(
&self,
working_slot: &S,
keys: impl Iterator<Item = (Pubkey, (LoadedProgramMatchCriteria, u64))>
) -> (LoadedProgramsForTxBatch, Vec<(Pubkey, u64)>)
pub fn extract<S: WorkingSlot>( &self, working_slot: &S, keys: impl Iterator<Item = (Pubkey, (LoadedProgramMatchCriteria, u64))> ) -> (LoadedProgramsForTxBatch, Vec<(Pubkey, u64)>)
Extracts a subset of the programs relevant to a transaction batch and returns which program accounts the accounts DB needs to load.
pub fn merge(&mut self, tx_batch_cache: &LoadedProgramsForTxBatch)
sourcepub fn sort_and_unload(&mut self, shrink_to: PercentageInteger)
pub fn sort_and_unload(&mut self, shrink_to: PercentageInteger)
Unloads programs which were used infrequently
sourcepub fn remove_programs(&mut self, keys: impl Iterator<Item = Pubkey>)
pub fn remove_programs(&mut self, keys: impl Iterator<Item = Pubkey>)
Removes all the entries at the given keys, if they exist