pub struct WorkStealingQueue { /* private fields */ }Expand description
Work stealing queue for load balancing
Implementations§
Source§impl WorkStealingQueue
impl WorkStealingQueue
Sourcepub fn push(&self, work: Box<dyn FnOnce(&GpuDevice) -> Result<()> + Send>)
pub fn push(&self, work: Box<dyn FnOnce(&GpuDevice) -> Result<()> + Send>)
Push work to local queue
Sourcepub fn pop(&self) -> Option<Box<dyn FnOnce(&GpuDevice) -> Result<()> + Send>>
pub fn pop(&self) -> Option<Box<dyn FnOnce(&GpuDevice) -> Result<()> + Send>>
Pop work from local queue
Sourcepub fn steal(&self) -> Vec<Box<dyn FnOnce(&GpuDevice) -> Result<()> + Send>>
pub fn steal(&self) -> Vec<Box<dyn FnOnce(&GpuDevice) -> Result<()> + Send>>
Steal work from this queue (take half if above threshold)
Sourcepub fn should_allow_stealing(&self) -> bool
pub fn should_allow_stealing(&self) -> bool
Check if stealing should be allowed
Auto Trait Implementations§
impl Freeze for WorkStealingQueue
impl !RefUnwindSafe for WorkStealingQueue
impl Send for WorkStealingQueue
impl Sync for WorkStealingQueue
impl Unpin for WorkStealingQueue
impl UnsafeUnpin for WorkStealingQueue
impl !UnwindSafe for WorkStealingQueue
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