pub enum UpcallError {
    InvalidSubscribeNum,
    QueueFull,
    KernelError,
}
Expand description

Errors which can occur when scheduling a process Upcall.

Scheduling a null-Upcall (which will not be delivered to a process) is deliberately not an error, given that a null-Upcall is a well-defined Upcall to be set by a process. It behaves essentially the same as if the process would set a proper Upcall, and would ignore all invocations, with the benefit that no task is inserted in the process’ task queue.

Variants

InvalidSubscribeNum

The passed subscribe_num exceeds the number of Upcalls available for this process.

For a Grant with n upcalls, this error is returned when GrantKernelData::schedule_upcall is invoked with subscribe_num >= n.

No Upcall has been scheduled, the call to GrantKernelData::schedule_upcall had no observable effects.

QueueFull

The process’ task queue is full.

This error can occur when too many tasks (for example, Upcalls) have been scheduled for a process, without that process yielding or having a chance to resume execution.

No Upcall has been scheduled, the call to GrantKernelData::schedule_upcall had no observable effects.

KernelError

A kernel-internal invariant has been violated.

This error should never happen. It can be returned if the process is inactive (which should be caught by Grant::enter) or process.tasks was taken.

These cases cannot be reasonably handled.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.