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.