pub(crate) struct ChunkSchedulingCoordinator {
pending_ticket_operations: SyncMutex<PendingChunkTicketOperations>,
state: SyncMutex<ChunkSchedulingState>,
committed_revision: AtomicU64,
}Expand description
Owns the short ticket-ingress lock and the non-blocking epoch handoff. The propagation manager moves between epochs instead of being cloned or locked by gameplay.
Fields§
§pending_ticket_operations: SyncMutex<PendingChunkTicketOperations>§state: SyncMutex<ChunkSchedulingState>§committed_revision: AtomicU64Implementations§
Source§impl ChunkSchedulingCoordinator
impl ChunkSchedulingCoordinator
pub fn new(ticket_manager: ChunkTicketManager) -> Self
pub fn queue_ticket_operation( &self, operation: ChunkTicketOperation, ) -> ChunkTicketRevision
pub fn queue_ticket_operations( &self, operations: impl IntoIterator<Item = ChunkTicketOperation>, ) -> Option<ChunkTicketRevision>
pub fn apply_pending_ticket_operations( &self, ticket_manager: &mut ChunkTicketManager, applied_revision: ChunkTicketRevision, ) -> ChunkTicketRevision
pub fn take_boundary_step(&self) -> ChunkSchedulingBoundaryStep
pub fn finish_epoch(&self, epoch: PreparedChunkSchedulingEpoch)
pub fn publish_committed_revision(&self, revision: ChunkTicketRevision)
pub fn is_revision_committed(&self, revision: ChunkTicketRevision) -> bool
Auto Trait Implementations§
impl !Freeze for ChunkSchedulingCoordinator
impl !RefUnwindSafe for ChunkSchedulingCoordinator
impl Send for ChunkSchedulingCoordinator
impl Sync for ChunkSchedulingCoordinator
impl Unpin for ChunkSchedulingCoordinator
impl UnsafeUnpin for ChunkSchedulingCoordinator
impl UnwindSafe for ChunkSchedulingCoordinator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreWraps this value in an
Arc<SyncMutex<>>