1. A method of processing threads, comprising: receiving a first thread that accesses a memory resource in a current state; holding the first thread; and releasing the first thread responsive to a final thread that accesses the memory resource in the current state has been received.