Claims
- 1. A method for facilitating network communications from one or more independent execution threads by a dedicated worker thread, comprising the steps of:
storing a request object by an execution thread in a data structure, the request object describing a request for a network operation and having state information; retrieving the request object from the data structure by the worker thread; modifying the request object to indicate a change of state; sending a non-blocking function call to a networking module; sending the request object to the networking module; and executing the non-blocking function call.
- 2. The method of claim 1 further comprising the step of storing a notification of completion in the data structure by the networking module, wherein the notification of completion corresponds to the request object.
- 3. The method of claim 2 further including the step of retrieving a notification of completion by the worker thread from the data structure.
- 4. The method of claim 3 further comprising the steps of:
retrieving the request object corresponding to the notification of completion by the worker thread; determining whether the request described in the request object is complete; and upon determination that the request is complete, sending a message to an execution thread indicating that the request is complete.
- 5. The method of claim 3 further comprising the steps of:
retrieving the request object corresponding to the notification of completion by the worker thread; determining whether the request described in the request object is complete; and upon determination that the request is not complete sending a second non-blocking function call to the networking module.
- 6. The method of claim 1 wherein the request object further includes information identifying the execution thread.
- 7. The method of claim 1 wherein the data structure is a queue.
- 8. A system for facilitating network communications from one or more independent execution threads using a networking module able to execute non-blocking networking function calls, comprising:
a data structure; one or more request objects stored in the data structure, the request objects comprising: information describing a request for a network operation; and state information; a worker thread connected to the data structure and to the networking module and configured to retrieve a request object from the data structure, modify the state of the request object and send a non-blocking function call to the networking module.
- 9. The system of claim 8, wherein the data structure is a queue.
- 10. The system of claim 8, wherein the worker thread is further configured to send the request object to the networking module.
- 11. The system of claim 8, wherein the data structure is further configured to receive a notification of completion from the networking module and store the notification of completion.
- 12. A system for testing a server comprising:
one or more virtual user threads, each virtual user thread being configured to simulate a computer that is using the server; a networking module connected to the server over a computer network; one or more request objects, the request objects comprising: information describing a request for a network operation; and state information; a data structure connected to the virtual user threads and configured to enable the virtual user threads to store request objects therein; a worker thread connected to the data structure and to the networking module and configured to retrieve a request object from the data structure, modify the state of the request object and send a non-blocking function call to the networking module.
- 13. The system of claim 12, wherein the data structure is a queue.
- 14. The system of claim 12, wherein the networking module is configured to store a notification of completion in the data structure, the notification of completion being associated with the request object.
- 15. The system of claim 14, wherein the worker thread is further configured to retrieve the notification of completion and to retrieve the request object from the notification of completion.
- 16. The system of claim 15, wherein the worker thread is further configured to determine whether the request for a network operation is completed, based on the request object and the notification of completion.
Parent Case Info
[0001] This patent application claims the benefit of priority under 35 U.S.C. 119(e) from U.S. Provisional Patent Application Serial No. 60/430,309, filed Dec. 12, 2002, entitled “SERVING CONCURRENT TCP/IP CONNECTIONS OF MULTIPLE VIRTUAL INTERNET USERS WITH A SINGLE THREAD”, which is hereby incorporated by reference as if set forth in its entirety herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60430309 |
Dec 2002 |
US |