shared_mutex with unique lock priority Having a shared lock where unique locks take priority would be beneficial. std::shared_mutex gives shared locks priority when a shared lock is already held. With a new lock with unique priority it should have the properties: 1. When a shared lock is already held and then a unique lock is attempting to be made - Subsequent `try_lock_shared` should immediately return false even though unique_lock isn't held yet - Subsequent `lock_shared` should block until unique lock is granted and relinquished - If a subsequent unique lock is pending while a unique lock is already held then a shared lock shouldn't be able to win the contention. Might be worth using `WFE/WFET` for faster userspace checking of lock if it is expected to not be contended for too long.