rwlock: introduce try semantics