Patent ID: 7797706

Claim:
A method in a data processing system for handling a number of threads, the method comprising: setting a value equal to the number of threads executing in the data processing system; decrementing the value each time a lock count for a thread within the number of threads is zero; receiving a first request from a first process, wherein the first request is a checkpoint request; sending a selected signal to a second process; responsive to receiving the selected signal in the second process, suspending a thread within the number of threads if the thread requests a lock and has a lock count of zero; responsive to all of the number of threads having no locks, executing a handling procedure in a processor of the data processing system; and wherein the sending step includes: sending the selected signal from a kernel to the second process, wherein the selected signal is detected by a particular thread within the number of threads; responsive to detecting of the selected signal by the particular thread, 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 number of threads; and responsive to detecting the second request, sending the particular signal from the kernel to all of the other threads within the number of threads.