Patent ID: 8332826

Claim:
A method comprising the steps of: starting a client process running on a processor of a computing device by requesting an operating platform to start the client process; receiving, via the computing device, a first handle for the client process from the operating platform; creating, via the computing device, a first supervisory thread external to the client process in response to receiving the first handle, wherein the first supervisory thread (i) comprises the first handle to monitor the running state of the client process and (ii) generates an exit notification signal in response to the client process terminating; generating, via the computing device, a second supervisory thread and incorporating the second supervisory thread into the client process, wherein the second supervisory thread (i) comprises a second handle to control the client process, (ii) terminates the client process in response to receiving a stop request, and (iii) is internal to the client process; receiving, via the computing device, a normal termination signal in response to a stop request being sent to the second supervisory thread; storing, in a process state table, normal termination data (i) associated with the normal termination signal and (ii) corresponding to the client process; receiving, via the computing device, an exit notification signal from the first supervisory thread in response to the client process terminating; in response to receiving the exit notification signal from the first supervisory thread, determining via the computing device whether termination of the client process was normal by determining whether the process state table is storing normal termination data corresponding to the client process; and executing a crash recovery plan in response to determining that the termination of the client process was not normal.