It's typical not to allow a second share acquire to proceed if we have an exclusive waiter:
t1: share
t2: exclusive so waits
t3: share also waits
Thats how we arrive at the rule that shared acquires in anything, but a trivial system (no exclusive acquires) may not be compatible.
So, contract #1 is typically not satisfied. Of course, this particular case is slightly different and so you might decide to support it.
Thats how we arrive at the rule that shared acquires in anything, but a trivial system (no exclusive acquires) may not be compatible. So, contract #1 is typically not satisfied. Of course, this particular case is slightly different and so you might decide to support it.