RingKernelIntrinsic

Enum RingKernelIntrinsic 

Source
pub enum RingKernelIntrinsic {
Show 18 variants IsActive, ShouldTerminate, MarkTerminated, GetMessagesProcessed, InputQueueSize, OutputQueueSize, InputQueueEmpty, OutputQueueEmpty, EnqueueResponse, HlcTick, HlcUpdate, HlcNow, K2kSend, K2kTryRecv, K2kHasMessage, K2kPeek, K2kPendingCount, Nanosleep,
}
Expand description

Ring kernel intrinsics for persistent actor kernels.

These intrinsics provide access to control block state, queue operations, and HLC (Hybrid Logical Clock) functionality within ring kernel handlers.

Variants§

§

IsActive

Check if kernel is active: is_active()

§

ShouldTerminate

Check if termination requested: should_terminate()

§

MarkTerminated

Mark kernel as terminated: mark_terminated()

§

GetMessagesProcessed

Get messages processed count: messages_processed()

§

InputQueueSize

Get input queue size: input_queue_size()

§

OutputQueueSize

Get output queue size: output_queue_size()

§

InputQueueEmpty

Check if input queue empty: input_queue_empty()

§

OutputQueueEmpty

Check if output queue empty: output_queue_empty()

§

EnqueueResponse

Enqueue a response: enqueue_response(&response)

§

HlcTick

Increment HLC logical counter: hlc_tick()

§

HlcUpdate

Update HLC with received timestamp: hlc_update(received_ts)

§

HlcNow

Get current HLC timestamp: hlc_now()

§

K2kSend

Send message to another kernel: k2k_send(target_id, &msg)

§

K2kTryRecv

Try to receive K2K message: k2k_try_recv()

§

K2kHasMessage

Check for K2K messages: k2k_has_message()

§

K2kPeek

Peek at next K2K message without consuming: k2k_peek()

§

K2kPendingCount

Get number of pending K2K messages: k2k_pending_count()

§

Nanosleep

Sleep for nanoseconds: nanosleep(ns)

Implementations§

Source§

impl RingKernelIntrinsic

Source

pub fn to_cuda(&self, args: &[String]) -> String

Get the CUDA code for this intrinsic.

Source

pub fn from_name(name: &str) -> Option<Self>

Parse a function name to get the intrinsic.

Source

pub fn requires_control_block(&self) -> bool

Check if this intrinsic requires the control block.

Source

pub fn requires_hlc(&self) -> bool

Check if this intrinsic requires HLC state.

Source

pub fn requires_k2k(&self) -> bool

Check if this intrinsic requires K2K support.

Trait Implementations§

Source§

impl Clone for RingKernelIntrinsic

Source§

fn clone(&self) -> RingKernelIntrinsic

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

impl Debug for RingKernelIntrinsic

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for RingKernelIntrinsic

Source§

fn eq(&self, other: &RingKernelIntrinsic) -> 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 Copy for RingKernelIntrinsic

Source§

impl Eq for RingKernelIntrinsic

Source§

impl StructuralPartialEq for RingKernelIntrinsic

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.