vmcore::vmtime

Struct VmTimeAccess

Source
pub struct VmTimeAccess { /* private fields */ }
Expand description

An individual time accessor, used to query and wait for time.

Implementations§

Source§

impl VmTimeAccess

Source

pub fn now(&self) -> VmTime

Gets the current time.

Source

pub fn host_time(&self, time: VmTime) -> Option<Instant>

Returns the host time corresponding to a guest time.

If the guest time is before the VM last resumed, then returns the time the VM last resumed.

If the VM is not running, returns None.

Source

pub fn get_timeout(&self) -> Option<VmTime>

Get the currently set timeout.

Source

pub fn set_timeout(&mut self, time: VmTime)

Sets the timeout poll_timeout will return ready.

Source

pub fn set_timeout_if_before(&mut self, time: VmTime)

Sets the timeout for poll_timeout will return ready, but only if time is earlier than the current timeout.

Source

pub fn cancel_timeout(&mut self)

Clears the current timeout for poll_timeout.

Source

pub fn poll_timeout(&mut self, cx: &mut Context<'_>) -> Poll<VmTime>

Polls the current time against the current timeout.

Returns Poll::Ready(self.now()) if the current timeout is before now. Returns Poll::Pending if there is no current timeout, or if the current timeout is after now.

Although this takes &self, note that it only stores a single waker, meaning that if you poll this from multiple tasks concurrently, only one task will be woken when the time elapses. Create another instance of this type with VmTimeSource if you need to poll this from multiple tasks.

Trait Implementations§

Source§

impl Drop for VmTimeAccess

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Inspect for VmTimeAccess

Source§

fn inspect(&self, req: Request<'_>)

Inspects the object.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more