Struct dispatch::Queue

source ·
pub struct Queue { /* private fields */ }
Expand description

A Grand Central Dispatch queue.

For more information, see Apple’s Grand Central Dispatch reference.

Implementations§

source§

impl Queue

source

pub fn main() -> Self

Returns the serial dispatch Queue associated with the application’s main thread.

source

pub fn global(priority: QueuePriority) -> Self

Returns a system-defined global concurrent Queue with the specified priority.

source

pub fn create(label: &str, attr: QueueAttribute) -> Self

Creates a new dispatch Queue.

source

pub fn with_target_queue( label: &str, attr: QueueAttribute, target: &Queue ) -> Self

Creates a new dispatch Queue with the given target queue.

A dispatch queue’s priority is inherited from its target queue. Additionally, if both the queue and its target are serial queues, their blocks will not be invoked concurrently.

source

pub fn label(&self) -> &str

Returns the label that was specified for self.

source

pub fn exec_sync<T, F>(&self, work: F) -> Twhere F: Send + FnOnce() -> T, T: Send,

Submits a closure for execution on self and waits until it completes.

source

pub fn exec_async<F>(&self, work: F)where F: 'static + Send + FnOnce(),

Submits a closure for asynchronous execution on self and returns immediately.

source

pub fn exec_after<F>(&self, delay: Duration, work: F)where F: 'static + Send + FnOnce(),

After the specified delay, submits a closure for asynchronous execution on self.

source

pub fn apply<F>(&self, iterations: usize, work: F)where F: Sync + Fn(usize),

Submits a closure to be executed on self the given number of iterations and waits until it completes.

source

pub fn for_each<T, F>(&self, slice: &mut [T], work: F)where F: Sync + Fn(&mut T), T: Send,

Submits a closure to be executed on self for each element of the provided slice and waits until it completes.

source

pub fn map<T, U, F>(&self, vec: Vec<T>, work: F) -> Vec<U>where F: Sync + Fn(T) -> U, T: Send, U: Send,

Submits a closure to be executed on self for each element of the provided vector and returns a Vec of the mapped elements.

source

pub fn barrier_sync<T, F>(&self, work: F) -> Twhere F: Send + FnOnce() -> T, T: Send,

Submits a closure to be executed on self as a barrier and waits until it completes.

Barriers create synchronization points within a concurrent queue. If self is concurrent, when it encounters a barrier it delays execution of the closure (and any further ones) until all closures submitted before the barrier finish executing. At that point, the barrier closure executes by itself. Upon completion, self resumes its normal execution behavior.

If self is a serial queue or one of the global concurrent queues, this method behaves like the normal sync method.

source

pub fn barrier_async<F>(&self, work: F)where F: 'static + Send + FnOnce(),

Submits a closure to be executed on self as a barrier and returns immediately.

Barriers create synchronization points within a concurrent queue. If self is concurrent, when it encounters a barrier it delays execution of the closure (and any further ones) until all closures submitted before the barrier finish executing. At that point, the barrier closure executes by itself. Upon completion, self resumes its normal execution behavior.

If self is a serial queue or one of the global concurrent queues, this method behaves like the normal async method.

source

pub fn suspend(&self) -> SuspendGuard

Suspends the invocation of blocks on self and returns a SuspendGuard that can be dropped to resume.

The suspension occurs after completion of any blocks running at the time of the call. Invocation does not resume until all SuspendGuards have been dropped.

Trait Implementations§

source§

impl Clone for Queue

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Queue

source§

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

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

impl Drop for Queue

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Send for Queue

source§

impl Sync for Queue

Auto Trait Implementations§

Blanket Implementations§

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, 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.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.