This algorithm is an extension and optimization of Lamport's Distributed Mutual Exclusion Algorithm, by removing the need for release messages.
[1] It was developed by computer scientists Glenn Ricart and Ashok Agrawala.
may enter the critical section multiple times without receiving permission from
One of the problems in this algorithm is failure of a node.
In such a situation a process may starve forever.
This problem can be solved by detecting failure of nodes after some timeout.