Describes asynchronous services provided by the kernel.
Many asynchronous services are provided to user threads by the kernel.
The RTimer
class is an example. It includes functions
such as:
After(TRequestStatus &aStatus,TTimeIntervalMicroSeconds32 anInterval);
This makes a timer request that completes after a given number of microseconds.
The RTimer
class is a client-side handle to the kernel’s
timer service. When an RTimer
is opened, using its CreateLocal()
function,
a Kernel object is created which holds the state of the timer and the ID of
the client’s thread. When a request function is issued, the client-side handle:
sets the passed TRequestStatus
to KRequestPending
sends a message to the
Kernel identifying the RTimer
client-side handle, the TRequestStatus
object
and the time interval in microseconds.
returns to the caller.
When the Kernel side timer completes, it posts the TRequestStatus
with
a completion code, normally KErrNone
, and uses the thread
id stored with the Kernel side timer object to signal the thread’s request
semaphore.
Provision of asynchronous services by the Kernel involves sending messages between the client thread and the Kernel.
The Kernel provides the most basic services available. Its main services
are defined in e32std.h
, including timing, notification
and the classes used in the client-server framework.