RunningRef

Struct RunningRef 

Source
pub struct RunningRef(pub Thread);
Expand description

A reference to a thread that is currently running on a CPU.

This type represents a thread that is actively executing on a CPU.

Tuple Fields§

§0: Thread

Implementations§

Source§

impl RunningRef

Source

pub fn stop_running(self) -> ReadyRef

Convert this running reference back to a ready reference.

This should be called when the thread is preempted or yields.

Source

pub fn should_preempt(&self) -> bool

Check if this thread should be preempted.

This updates the thread’s virtual runtime and returns true if the time slice has expired.

Source

pub fn block(self)

Mark this thread as blocked.

This should be called when the thread blocks on I/O or synchronization.

Source

pub fn finish(self)

Mark this thread as finished.

This should be called when the thread’s entry point returns.

Source

pub fn prepare_preemption(&self) -> ReadyRef

Prepare this thread for preemption.

This saves the current state and returns a ReadyRef that can be re-enqueued.

Source

pub fn priority(&self) -> u8

Get the thread’s priority.

Source

pub fn id(&self) -> ThreadId

Get the thread’s unique identifier.

Source

pub fn last_cpu(&self) -> usize

Get the CPU this thread last ran on.

For now, return 0 as a placeholder. In a real implementation, this would track the actual CPU assignment.

Source

pub fn time_slice(&self) -> &TimeSlice

Get access to the thread’s time slice for scheduler decisions.

Trait Implementations§

Source§

impl Clone for RunningRef

Source§

fn clone(&self) -> RunningRef

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.