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: Stats
Implementations§
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