1. A method for managing parallel resource requests in a portable computing device, comprising: generating a first request from a first client, the first request issued in the context of a first execution thread; forwarding the first request to a resource; passing in by the first client a default preference that informs the resource that the first client allows the resource to decide whether or not to allow asynchronous processing; wherein the asynchronous processing comprising: acknowledging the first request by the resource and initiating asynchronous processing if the resource decides to allow asynchronous processing; processing the first request in the resource while allowing the first client to continue processing in the first execution thread; and signaling, by the resource, completion of the processing of the first request, the completion of the processing of the first request including updating a local representation of the resource to a new state and invoking any registered callbacks, the resource becoming available to service a second request; receiving in the resource the second request; and processing the second request in the resource.