Composition necessitates specialized interfaces between
operations. Lock detection and resolution imply generic ones. As an
operation needs to lock a resource, it registers to it. If a second
operation, later, requests the same resource, a negotiation between
the two operations may take place. The negotiation may reveal that the
two actually are compatible with respect to their intentions
concerning the resource, or decide to give way to the one or the
other, depending upon criteria involving the highest-level operations
they belong to: respective priorities, existence of locks on other
resources, or relative cost of favouring the one over the other.
We have not implemented this kind of negotiations yet. We want to
stress, however, that the major obstacle preventing the use of such
sophisticated policies has been lifted by making the proper scope
accessible down to the point where the conflict is raised: the locking
of a resource.