pub struct QueueHandle { /* private fields */ }Expand description
Handle for submitting jobs to the generation queue.
Implementations§
Source§impl QueueHandle
impl QueueHandle
pub fn new(job_tx: Sender<GenerationJob>) -> Self
Sourcepub async fn submit(
&self,
job: GenerationJob,
capacity: usize,
) -> Result<usize, SubmitError>
pub async fn submit( &self, job: GenerationJob, capacity: usize, ) -> Result<usize, SubmitError>
Submit a generation job.
Atomically reserves a slot against capacity using fetch_add, so a
burst of concurrent callers cannot all slip past a separate pending()
pre-check (TOCTOU). Returns the queue position on success.
pub fn decrement(&self)
pub fn pending(&self) -> usize
Trait Implementations§
Source§impl Clone for QueueHandle
impl Clone for QueueHandle
Source§fn clone(&self) -> QueueHandle
fn clone(&self) -> QueueHandle
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for QueueHandle
impl RefUnwindSafe for QueueHandle
impl Send for QueueHandle
impl Sync for QueueHandle
impl Unpin for QueueHandle
impl UnsafeUnpin for QueueHandle
impl UnwindSafe for QueueHandle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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 more