barrier 98 for the coordinator to release the application group from the checkpoint once released the checkpoint thread goes back to waiting at the checkpoint barrier 86 until it is awoken to take another checkpoint fig2 a and fig2 b illustrate by way of example embodiment 40 how the threads of an application 44 which include the main thread and threads the application creates 45 take a checkpoint when an application 39 s thread 46 receives the checkpoint signal it enters the checkpoint apc handler 48 in the kernel module at irql apc_level executing in kernel mode allows a thread to directly access its kernel attributes once a thread enters the checkpoint apc handler it acquires its ethread block and user mode context 49 these attributes are used to determine the thread 39 s execution state at the time it received the checkpoint signal because the elements of a process must be saved in a controlled manner all threads sync up together by waiting at the checkpoint barrier once every thread has arrived at the barrier they proceed in lock step throughout the checkpoint before saving the state of the process each of the application 39 s threads first ensure they were interrupted in a restorable state a thread must not save its state if it.