Calling ML::do_abort before throwing in GCLOCK_SPINCHECK macro. This is useful if we can't use catch throw in gdb
Using AND mask rather than SHR to check the stop bit
Throwing an exception when the CAS fails in unlockWrite
Moved write-side critical section implementation in source file