This document explains the use of asynchronous service providers.
In a multiprocessing system, user programs wait for events, for example, keyboard input, pointer input, completion of an I/O request, timer events etc. These events, and the services associated with them, are provided by asynchronous service providers.
A program has a main loop that:
calls appropriate service providers
waits for events
acts on completed events, resulting, most likely, in further calls to service providers.
All Symbian platform programs make extensive use of asynchronous services. For this reason, Symbian platform provides mechanisms which make them easy to use.
Low-level asynchronous service handling encompasses:
the asynchronous service provider, which provides asynchronous services using request functions and cancel functions.
the asynchronous request status which indicates the completion status of a request.
the thread request semaphore, the means by which a service provider signals to a requester that it has completed a request.
High-level asynchronous service handling encompasses