Struct dispatch::Queue [] [src]

pub struct Queue {
    // some fields omitted
}

A Grand Central Dispatch queue.

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

Methods

impl Queue
[src]

fn main() -> Self

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

fn global(priority: QueuePriority) -> Self

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

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

Creates a new dispatch Queue.

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.

fn label(&self) -> &str

Returns the label that was specified for self.

fn sync<T, F>(&self, work: F) -> T where F: Send + FnOnce() -> T, T: Send

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

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

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

fn after_ms<F>(&self, ms: u32, work: F) where F: 'static + Send + FnOnce()

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

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

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

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.

fn foreach<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.

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.

fn barrier_sync<T, F>(&self, work: F) -> T where 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.

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.

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

impl Sync for Queue
[src]

impl Send for Queue
[src]

impl Clone for Queue
[src]

fn clone(&self) -> Self

Returns a copy of the value. Read more

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

Performs copy-assignment from source. Read more

impl Drop for Queue
[src]

fn drop(&mut self)

A method called when the value goes out of scope. Read more