Is there a way to suspend until a mutex is unlocked, but without locking it?
I.e. there's some kind of operation that "locks" the mutex, and only it can run. But there's another, "friendly" kind of operation that can run concurrently with other "friendly" operations, but not when the mutex is locked. That also means a locking operation will have to suspend until all "friendly" operations finish.