switched from atomics to readerwriterlockslim :(
supports recursion for locking
Merge remote-tracking branch 'origin/threadsafety' into transactionManager