1. A computer controlled method for committing a transaction to a shared memory, said shared memory in communication with one or more processors executing a plurality of threads, each of said one or more processors having the capability to operate a lock in said shared memory, said transaction having a read-set and a write-set, said read-set identifying a first read location of said shared memory covered by a first lock object, said write-set identifying a result data value to be stored at a first write location of said shared memory covered by a second lock object, said first lock object and said second lock object each comprising a writer lock, said method comprising: wherein said first read location is covered by a first indicator and said first write location is covered by a second indicator; acquiring said writer lock of said second lock object; said transaction arriving at said first indicator; storing said result data value at said first write location in said shared memory; releasing said writer lock of said second lock object subsequent to storing; said transaction departing from said first indicator subsequent to storing; and waiting, subsequent to storing, for said second indicator to drain, wherein said waiting comprises waiting for other contemporaneous transactions that have arrived at the second indicator to depart the second indicator, wherein said first indicator comprises a reader counter, and wherein at least one of arriving at and departing from said first indicator comprises changing a value of said reader counter by an amount.