Patent ID: 7653910

Claim:
A data processing system for handling a plurality of threads, the data processing system comprising: a memory, wherein the memory includes a set of instructions; a processor connected to the memory, wherein the processor executes the set of instructions; receiving means for receiving a first request from a first process, wherein the first request is a checkpoint request; first sending means for sending a selected signal to a second process, wherein the first sending means comprises: second sending means for sending the selected signal from a kernel to the second process, wherein the selected signal is detected by a particular thread within the plurality of threads in the second process; third sending means, responsive to detecting the selected signal by the particular thread, for sending a second request from the particular thread to the kernel, wherein the second request requests sending of a particular signal to all other threads within the plurality of threads; and fourth sending means, responsive to detecting the second request, for sending the particular signal from the kernel to all of the other threads within the plurality of threads; suspending means, responsive to receiving the selected signal in the second process, for suspending a thread within the plurality of threads if the thread no longer has any locks and attempts to take a lock; and initiating means for initiating a procedure if all of the plurality of threads have no locks.