by making it always intrusive, we make it a more broadly useful API, and avoid binary bloat.
@fence
RwLock.lockShared()