Patent ID: 8626806

Claim:
A computer-implemented method for use with a virtual runtime engine, the method being performed by a directing process, the method comprising: instructing the virtual runtime engine separate from the directing process to execute a virtual application file to thereby initiate execution of a virtual application at least partially implemented by the virtual application file, the virtual application executing on an operating system that maintains a reference count for each named kernel object, the reference count indicating how many objects have references to the named kernel object, wherein when the virtual application begins executing, a first thread begins executing, a sentinel object that is a named kernel object is created, and the first thread has a reference to the sentinel object; allocating a block of shared memory, the virtual runtime engine being configured to access the identified block of shared memory; pausing execution of the virtual application by storing in the block of shared memory an indication that execution of the virtual application is to be paused, the virtual runtime engine being configured to read the indication that execution of the virtual application is to be paused and after the reading thereof, prevent the virtual application from accessing the virtual application file; resuming execution of the virtual application by storing in the block of shared memory an indication that execution of the virtual application is to be resumed, the virtual runtime engine being configured to read the indication that execution of the virtual application is to be resumed and after the reading thereof, allow the virtual application to access the virtual application file; and detecting execution of the virtual application has terminated, the detecting comprising detecting the sentinel object has a reference count equal to zero.