Open michaelficarra opened 1 week ago
I think this could also help in avoiding deadlocks? If you have two consumers both trying to acquire 2 resources, each of them could acquire 1, preventing the other conumer from acquiring the other resource. If the 2 governors for the resources were composed first, they could avoid this deadlock.
Sometimes you have a process that depends on more than one limited resource. If you're invoking the Governor protocol yourself, you can just do this with
Promise.all
. But if you're passing it to an API that expects a Governor parameter, you'd have to re-wrap it up using the Governor interface. Similarly, if you want it to be usable withusing
, you'd have to implement the Explicit Resource Management protocol. We should provide a Governor composition functionGovernor.all
.What I've described is a product operation. Would a sum operation also be useful? I imagine so but probably not anywhere near as commonly.