1. A computer-implemented method, comprising: detecting that execution of one or more threads is blocked due to the one or more threads waiting to acquire a given lock in a multi-threaded, transactional memory system; determining a subset of the one or more threads; releasing the subset of threads from a waiting pool associated with the given lock; and at least one of the threads in the subset attempting to execute transactionally without acquiring the given lock.