coroutine-lock: Reimplement CoRwlock to fix downgrade bug