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

source

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.

source

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.

source

pub fn prune_feature_set_transition(&mut self)

On the epoch boundary this removes all programs of the outdated feature set

source

pub fn prune_by_deployment_slot(&mut self, slot: Slot)

source

pub fn prune<F: ForkGraph>(&mut self, fork_graph: &F, new_root: Slot)

Before rerooting the blockstore this removes all programs of orphan forks

source

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.

source

pub fn merge(&mut self, tx_batch_cache: &LoadedProgramsForTxBatch)

source

pub fn sort_and_unload(&mut self, shrink_to: PercentageInteger)

Unloads programs which were used infrequently

source

pub fn remove_programs(&mut self, keys: impl Iterator<Item = Pubkey>)

Removes all the entries at the given keys, if they exist

source

pub fn unload_all_programs(&mut self)

Trait Implementations§

source§

impl AbiExample for LoadedPrograms

source§

fn example() -> Self

source§

impl Debug for LoadedPrograms

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for LoadedPrograms

source§

fn default() -> LoadedPrograms

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> AbiExample for T

source§

default fn example() -> T

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more