A problem with Ada and resource allocation

Ada has been described as being suitable for the implementation of resource management algorithms. We explore four possible solutions to the problem of allocating a number of resources from a pool. We conclude that no ready method presents itself which avoids race conditions and is robust in the face of the failure of requesting tasks.