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§
fn take_resumed_scheduler( &self, context: SchedulingContext, result_with_timings: ResultWithTimings, ) -> InstalledSchedulerBox
Sourcefn register_timeout_listener(&self, timeout_listener: TimeoutListener)
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§
Sourcefn take_scheduler(&self, context: SchedulingContext) -> InstalledSchedulerBox
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.