pub enum BlockingRequest<'a> {
NewChan(Option<usize>),
Send(ChanId, RtPayload),
TrySend(ChanId, RtPayload),
Recv(ChanId),
TryRecv(ChanId),
Select(Vec<SelectArm>),
Sleep(u64),
Spawn(Box<dyn Task<'a> + 'a>),
Await(TaskId),
Abort(TaskId),
Close(ChanId),
}Expand description
A blocking (or non-blocking-but-scheduler-routed) request the interpreter hands to the scheduler.
Variants§
NewChan(Option<usize>)
Create a channel of the given capacity (None = config default).
Send(ChanId, RtPayload)
Send a value into a channel (blocks if full).
TrySend(ChanId, RtPayload)
Non-blocking send; resume with Payload(Bool(success)).
Recv(ChanId)
Receive a value from a channel (blocks if empty).
TryRecv(ChanId)
Non-blocking receive; resume with the value, or Payload(Nothing) if empty.
Select(Vec<SelectArm>)
Await the first ready arm of a select.
Sleep(u64)
Sleep for some logical ticks.
Spawn(Box<dyn Task<'a> + 'a>)
Spawn a child task; resume with its TaskId.
Await(TaskId)
Await a task’s completion; resume with its result payload.
Abort(TaskId)
Abort a task.
Close(ChanId)
Close a channel.
Auto Trait Implementations§
impl<'a> Freeze for BlockingRequest<'a>
impl<'a> !RefUnwindSafe for BlockingRequest<'a>
impl<'a> !Send for BlockingRequest<'a>
impl<'a> !Sync for BlockingRequest<'a>
impl<'a> Unpin for BlockingRequest<'a>
impl<'a> UnsafeUnpin for BlockingRequest<'a>
impl<'a> !UnwindSafe for BlockingRequest<'a>
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.