L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
Block_device::Errand::Errand Class Reference

Wrapper for a small task executed asynchronously in the server loop. More...

#include <errand.h>

+ Inheritance diagram for Block_device::Errand::Errand:
+ Collaboration diagram for Block_device::Errand::Errand:

Public Member Functions

void expired () final
 callback function to be called when timeout happened
 
- Public Member Functions inherited from L4::Ipc_svr::Timeout
 Timeout ()
 Make a timeout.
 
virtual ~Timeout ()=0
 Destroy a timeout.
 
l4_kernel_clock_t timeout () const
 return absolute timeout of this callback.
 
- Public Member Functions inherited from cxx::H_list_item_t< ELEM_TYPE >
 H_list_item_t ()
 Constructor.
 
 ~H_list_item_t () noexcept
 Destructor.
 

Detailed Description

Wrapper for a small task executed asynchronously in the server loop.

Errands are implemented as timeout tasks. They might be queued with the current timestamp, so that they are executed as soon as possible on the next iteration of the server loop or they might be scheduled with a timeout, which is particularly useful if the driver has to do a busy wait on the hardware.

Definition at line 108 of file errand.h.

Member Function Documentation

◆ expired()

void Block_device::Errand::Errand::expired ( )
inlinefinalvirtual

callback function to be called when timeout happened

Note
The timeout object is already dequeued when this function is called, this means the timeout may be safely queued again within the expired() function.

Implements L4::Ipc_svr::Timeout.

Definition at line 113 of file errand.h.

References L4::Runtime_error::str().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: