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