A method and apparatus for executing target application programs with
employment of a supervisor that is coupled to the executing target
application through a conventional status reporting port of the computer.
Events that represent execution errors or unexpected behavior are
provided to the reporting port, or discovered through the reporting port,
and the supervisor responds to such events by perusing a configuration
that is tailored to the executing target application. For each reported
event, the supervisor retrieves one or more actions that the
configuration file specifies for the reported events and executes the
specified actions. The configuration file includes actions that aim to
effect a recovery, from reported events, including restart application,
or a thread of the application, based on checkpointed data, restart
target application as soon as it becomes idle, and suspend a thread when
a thread starvation condition exists.