1. A method to execute a native code thread in a virtual machine environment, comprising: prior to executing the native code thread, storing a pointer pointing to a current top of a stack; initiating generation of an interrupt; beginning execution of the native code thread; upon an occurrence of the interrupt, determining if the native code thread is still executing and, if it is; recording a state of the native code thread; interrupting execution of the native code thread; when returning to execute the interrupted native code thread, retrieving the stored state of the native code thread.