Patent ID: 7748004

Claim:
A client side HTTP stack software component stored in a memory and executed by a processor for processing requests, comprising: at least one completion port object; at least one client side socket, wherein each of the at least one client side sockets is associated with the at least one completion port object using a key, wherein the use of completion port objects allows pending threads to be deactivated whereby execution of tasks related to a given request are suspended until the completion port object receives an associated completion packet at the client side socket that is identified using the associated key; a thread pool comprising a plurality of threads that process tasks associated with at least one client side request, wherein any deactivated pending threads are automatically returned to the thread pool and become available for use with other client requests, such that as client requests are received and as pending requests become ready, the next available thread is used to process the client request or previously pending request; and a client side state machine associated with the at least one request, wherein the client side state machine maintains context information for each pending request, such that upon receiving an indication that the pending request has become ready, the next available thread resumes execution at the appropriate state using the context information.