Queue

Struct Queue 

Source
pub struct Queue { /* private fields */ }
Expand description

The MVSync queue. A single queue exists per MVSync instance. It is ran on its own thread, and distributes tasks efficiently between threads that are allocated to MVSync.

If a task that is submitted is waiting on a semaphore, it will not be submitted until it is ready, to prevent the workers from being clogged by functions that are waiting for other functions.

Implementations§

Source§

impl Queue

Source

pub fn submit(&self, task: Task)

Submit a task to the queue. This will push the task to the back of the queue. When there is a free worker available, the task will be popped off the queue and executed by the worker.

§Arguments

task - The task to push to the back of the queue.

Source

pub fn submit_all(&self, tasks: Vec<Task>)

Submit a vec of tasks to the queue. This will push the task to the back of the queue. When there is a free worker available, the task will be popped off the queue and executed by the worker in order.

§Arguments

tasks - The vec of tasks to push to the back of the queue.

Source

pub fn submit_on(&self, task: Task, thread: &str)

Submit a task to the queue. This will push the task to the back of the queue. When there is a free worker available on the given thread, the task will be popped off the queue and executed by the worker.

§Arguments

task - The task to push to the back of the queue.

Source

pub fn submit_all_on(&self, tasks: Vec<Task>, thread: &str)

Submit a vec of tasks to the queue. This will push the task to the back of the queue. When there is a free worker available on the given thread, the task will be popped off the queue and executed by the worker in order.

§Arguments

tasks - The vec of tasks to push to the back of the queue.

Trait Implementations§

Source§

impl PartialEq for Queue

Source§

fn eq(&self, other: &Queue) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Queue

Auto Trait Implementations§

§

impl Freeze for Queue

§

impl RefUnwindSafe for Queue

§

impl Send for Queue

§

impl Sync for Queue

§

impl Unpin for Queue

§

impl UnwindSafe for Queue

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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 T
where 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<T, U> UnsafeInto<U> for T
where U: UnsafeFrom<T>,

Source§

unsafe fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of UnsafeFrom<T> for U chooses to do.

Source§

impl<T> MVSynced for T
where T: Send + Sync + 'static,