Worker

Struct Worker 

Source
pub struct Worker {
    Context: Context<Task>,
    IsRunning: Arc<AtomicBool>,
}
Expand description

Represents a worker that executes tasks from its assigned Context.

Fields§

§Context: Context<Task>

The worker’s execution context, which contains its private deques and a reference to the shared queue system.

§IsRunning: Arc<AtomicBool>

An atomic flag, shared by all workers, to signal a shutdown request.

Implementations§

Source§

impl Worker

Source

pub fn Create(Context: Context<Task>, IsRunning: Arc<AtomicBool>) -> Self

Creates a new Worker with its unique execution context and a reference to the scheduler’s running state.

Source

pub async fn Run(self)

The main execution loop for the worker.

This loop continuously tries to find and execute tasks. It prioritizes its local queue and, if empty, attempts to steal work from other workers or the global queue. If no work is found anywhere, it yields briefly to avoid busy-waiting.

Source

fn PopLocal(&self) -> Option<Task>

Attempts to pop a single task from the local deques, honoring priority from high to low.

Source

fn StealFromSystem(&self) -> Option<Task>

Attempts to steal a batch of work from the system.

It steals from the highest-priority queue that has work, populating its own local queue and returning the first task immediately for execution.

Auto Trait Implementations§

§

impl !Freeze for Worker

§

impl !RefUnwindSafe for Worker

§

impl Send for Worker

§

impl !Sync for Worker

§

impl Unpin for Worker

§

impl !UnwindSafe for Worker

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

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.