Trait InstalledSchedulerPool

Source
pub trait InstalledSchedulerPool:
    Send
    + Sync
    + Debug {
    // Required methods
    fn take_resumed_scheduler(
        &self,
        context: SchedulingContext,
        result_with_timings: ResultWithTimings,
    ) -> InstalledSchedulerBox;
    fn register_timeout_listener(&self, timeout_listener: TimeoutListener);

    // Provided method
    fn take_scheduler(
        &self,
        context: SchedulingContext,
    ) -> InstalledSchedulerBox { ... }
}

Required Methods§

Source

fn take_resumed_scheduler( &self, context: SchedulingContext, result_with_timings: ResultWithTimings, ) -> InstalledSchedulerBox

Source

fn register_timeout_listener(&self, timeout_listener: TimeoutListener)

Registers an opaque timeout listener.

This method and the passed struct called TimeoutListener are very opaque by purpose. Specifically, it doesn’t provide any way to tell which listener is semantically associated to which particular scheduler. That’s because proper unregistration is omitted at the timing of scheduler returning to reduce latency of the normal block-verification code-path, relying on eventual stale listener clean-up by solScCleaner.

Provided Methods§

Source

fn take_scheduler(&self, context: SchedulingContext) -> InstalledSchedulerBox

A very thin wrapper of Self::take_resumed_scheduler to take a scheduler from this pool for a brand-new bank.

Implementors§