How does your ReadWriteLock compare to Monitor? I was under the impression that what you describe could be done with a Monitor.
Monitor is different synchronisation mechanism. It can be used to implement ReadWriteLock. But It looks like more expensive solution.��
After look at Pharo implementation of Monitor I realise that it #critical: method not takes into account issue described in Semaphore>>critical:. I will ask about it on separate thread.��