It's probably a good idea to assert if writeLocked is set while trying to set readLocked. Unfortunately, I have a feeling that there's some weirdo edge case that requires it. Still we should try it.