Patent ID: 7823021

Claim:
A computer-implemented method comprising the steps of: starting, by one or more processors, a client process by (i) creating a first handle corresponding to the client process, (ii) creating a first supervisory thread, the first supervisory thread being external to the client process and being adapted for monitoring the client process, (iii) storing the first handle in the first supervisory thread, and (iv) creating a second supervisory thread with a second handle, the second supervisory thread being internal to the client process and being adapted for stopping the client process; in response to receiving a stop request, stopping the client process by signaling an interprocess communication object using the second handle of the second supervisory thread in the client process; receiving normal termination data in response to the client process terminating normally from the stop request, the normal termination data indicating that the client process terminated normally; receiving an exit notification signal from the client process via the first supervisory thread, the exit notification signal indicating that the client process terminated; in response to receiving the exit notification signal, determining whether termination of the client process was normal by checking whether the terminated client process has corresponding normal termination data in a process state table; and executing one or more crash recovery plans in response to determining that the client process terminated as the result of a crash.