Claims
- 1. A method for making a call out from a multi-threaded virtual machine embedded in a server that is executing in a master native thread, the method comprising the steps of:
in response to detecting a call out made by a current VM thread of said virtual machine, determining whether the current VM thread is associated with the master native thread; if the current VM thread is associated with the master native thread, then making the call out; if the current VM thread is not associated with the master native thread, then making the call out after performing the steps of:
associating the current VM thread with said master native thread; and transferring execution control to said master native thread.
- 2. The method of claim 1 wherein:
the current VM thread is a non-master VM thread that is associated with a non-master native thread; and the step of transferring execution control is performed by transferring execution control from said non-master native thread to said master native thread.
- 3. The method of claim 2 wherein:
the current VM thread is associated with the non-master VM thread by a first pointer; a master VM thread is associated with the master native thread by a second pointer; and the step of associating the current VM thread with the master native thread is performed by swapping the first pointer with the second pointer.
- 4. The method of claim 2 further comprising the step of establishing performance of said call out as a wake up action for said master native thread prior to transferring execution control to said master native thread.
- 5. The method of claim 1 wherein the step of determining whether the current VM thread is associated with the master native thread is performed by a call out processor configured to generate code with logic for performing the steps of:
associating the current VM thread with said master native thread; transferring execution control to said master native thread; and performing said call out.
- 6. The method of claim 2 further comprising the step of returning execution control to said non-master VM thread upon return from said call out.
- 7. A computer-readable medium bearing instructions for making a call out from a multi-threaded virtual machine embedded in a server that is executing in a master native thread, the instructions comprising instructions for performing the steps of:
in response to detecting a call out made by a current VM thread of said virtual machine, determining whether the current VM thread is associated with the master native thread; if the current VM thread is associated with the master native thread, then making the call out; if the current VM thread is not associated with the master native thread, then making the call out after performing the steps of:
associating the current VM thread with said master native thread; and transferring execution control to said master native thread.
- 8. The computer-readable medium of claim 7 wherein:
the current VM thread is a non-master VM thread that is associated with a non-master native thread; and the step of transferring execution control is performed by transferring execution control from said non-master native thread to said master native thread.
- 9. The computer-readable medium of claim 8 wherein:
the current VM thread is associated with the non-master VM thread by a first pointer; a master VM thread is associated with the master native thread by a second pointer; and the step of associating the current VM thread with the master native thread is performed by swapping the first pointer with the second pointer.
- 10. The computer-readable medium of claim 8 further comprising instructions for performing the step of establishing performance of said call out as a wake up action for said master native thread prior to transferring execution control to said master native thread.
- 11. The computer-readable medium of claim 7 wherein the step of determining whether the current VM thread is associated with the master native thread is performed by a call out processor configured to generate code with logic for performing the steps of:
associating the current VM thread with said master native thread; transferring execution control to said master native thread; and performing said call out.
- 12. The computer-readable medium of claim 8 further comprising instructions for performing the step of returning execution control to said non-master VM thread upon return from said call out.
- 13. A system comprising:
a server executing in a master native thread; a multi-threaded virtual machine configured to service calls from said server; a call out processor configured to detect call outs from said multi-threaded virtual machine to routines in said server, and to respond to said call outs by performing the steps of:
determining whether a current VM thread that is attempting to make a call out is associated with the master native thread; if the current VM thread is associated with the master native thread, then making the call out; if the current VM thread is not associated with the master native thread, then making the call out after performing the steps of:
associating the current VM thread with said master native thread; and transferring execution control to said master native thread.
RELATED APPLICATIONS
[0001] The present application claims the benefit of the following U.S. Provisional Patent Application, the contents of which are incorporated by reference in its entirety:
[0002] U.S. Provisional Patent Application Serial No. 60/185,135 entitled HANDLING CALLOUTS MADE BY A MULTI-THREADED VIRTUAL MACHINE TO A SINGLE THREADED ENVIRONMENT, filed on Feb. 25, 2000 by Scott Meyer (docket 50277-332; OID-1997-084-02PRO).
[0003] The present application is related to the following commonly-assigned, co-pending U.S. patent applications, the contents of all of which are incorporated by reference in their entirety:
[0004] U.S. patent application Ser. No. 09/248,295 entitled MEMORY MANAGEMENT SYSTEM WITHIN A RUN-TIME ENVIRONMENT, filed on Feb. 11, 1999 by Harlan Sexton et al. (docket 50277-178; OID-1997-048-01);
[0005] U.S. patent application Ser. No. 09/248,291 entitled MACHINE INDEPENDENT MEMORY MANAGEMENT SYSTEM WITHIN A RUN-TIME ENVIRONMENT, filed on Feb. 11, 1999by Harlan Sexton et al. (docket 50277-172; OID-1997-048-02);
[0006] U.S. patent application Ser. No. 09/248,294 entitled ADDRESS CALCULATION OF INVARIANT REFERENCES WITHIN A RUN-TIME ENVIRONMENT, filed on Feb. 11, 1999 by Harlan Sexton et al. (docket 50277-179; OID-1997-048-03);
[0007] U.S. patent application Ser. No. 09/248,297 entitled PAGED MEMORY MANAGEMENT SYSTEM WITHIN A RUN-TIME ENVIRONMENT, filed on Feb. 11, 1999 by Harlan Sexton et al. (docket 50277-261; OID-1997-048-17);
[0008] U.S. patent application Ser. No. 09/320,578 entitled METHOD AND ARTICLE FOR ACCESSING SLOTS OF PAGED OBJECTS, filed on May 27, 1999 by Harlan Sexton et al. (docket 50277-293; OID-1998-034-01);
[0009] U.S. patent application Ser. No. 09/408,847 entitled METHOD AND ARTICLE FOR MANAGING REFERENCES TO EXTERNAL OBJECTS IN A RUNTIME ENVIRONMENT, filed on Sep. 30, 1999 by Harlan Sexton et al. (docket 50277-230; OID-1997-048-12);
[0010] U.S. patent application Ser. No. 09/512,619 entitled METHOD FOR MANAGING MEMORY USING EXPLICIT, LAZY INITALIZATION IN A RUN-TIME ENVIRONMENT, filed on Feb. 25, 2000 by Harlan Sexton et al. (docket 50277-214; OID-1997-048-07);
[0011] U.S. patent application Ser. No. 09/512,622 entitled METHOD FOR MANAGING MEMORY USING ACTIVATION-DRIVEN INITIALIZATION IN A RUN-TIME ENVIRONMENT, filed on Feb. 25, 2000 by Harlan Sexton et al. (docket 50277-213; OID-1997-048-08);
[0012] U.S. patent application Ser. No. 09/512,621 entitled SYSTEM AND METHODOLOGY FOR SUPPORTING A PLATFORM INDEPENDENT OBJECT FORMAT FOR A RUN-TIME ENVIRONMENT, filed on Feb. 25, 2000 by Harlan Sexton et al. (docket 50277-258; OID-1997-048-14);
[0013] U.S. patent application Ser. No. 09/512,618 entitled METHOD AND APPARATUS FOR MANAGING SHARED MEMORY IN A RUN-TIME ENVIRONMENT, filed on Feb. 25, 2000 by Harlan Sexton et al. (docket 50277-259; OID-1997-048-15); and
[0014] U.S. patent application Ser. No. 09/512,620 entitled USING A VIRTUAL MACHINE INSTANCE AS THE BASIC UNIT OF USER EXECUTION IN A SERVER ENVIRONMENT, filed on Feb. 25, 2000 by Harlan Sexton et al. (docket 50277-403; OID-1997-048-19).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60185135 |
Feb 2000 |
US |