Patent ID: 6151569
Filing Date: 2000-11-21
Classification: G06F

Abstract:
A machine-implemented method for reestablishing user access to an apparently frozen and identified one of plural programs running under a multitasking operating system,where said plural programs include multitasked programs;where for each respective multitasked program running under said OS (operating system), the OS provides a respective virtual processor that includes a virtual stack and a plurality of respective context registers for supporting multitasking said context registers including an instruction pointer for keeping track of what instruction the multitasked program is next to execute when its execution resumes during multitasking, and a stack pointer for keeping track of what location in its virtual stack the multitasked program is next to reference as its top-of-stack when its execution resumes during multitasking,where said OS further provides a standard-for-type calling function for use by each given one of the multitasked programs when that given multitasked program is about to invoke a callable, target function of a corresponding type, andwhere said standard calling function consistently within said OS, places a special signature value on the virtual stack of a given program for use in returning from a respectively invoked target function of the corresponding type after the given program uses the standard-for-type calling function to invoke the respective target function;said machine-implemented, reestablishing method comprising the steps of:(a) determining whether the identified program is soft-locked or hard-locked, where a soft-locked program is one that responds to messages sent to it from the OS, and a hard-locked program is one that does not respond to messages sent to it from the OS;(b) in response to said determining step (a) determining that the identified program is soft-locked, searching for a disabled window associated with the identified program and, if such a window is found, enabling the found window;(c) in response to said determining step (a) determining that the identified program is hard-locked, performing at least one of the substeps of:(c.1) searching for said special signature value on the virtual stack of the identified program; and(c.2) installing an external message dispatch loop for the identified program; and(d) in further response to said determining step (a) determining that the identified program is hard-locked, and after one of said substeps (c.1) and (c.2) is performed, modifying at least one of the context registers of the identified program and initiating multitasked execution of the identified program with the modified, at least one context register.