addded memory barriers at the end of the lock initialization methods;
lack of barriers may cause issues on architectures with relaxed memory
models, such as the Tilera