Resource management for controlling allocation of a resource to competing
computer processes is achieved through the use of a joining function. A resource
manager is responsive to identification of a thread for a first process requesting
allocation of the resource, when the resource is already allocated to a thread
for a second process, to establish a joining function to the thread for the second
process. The joining function is operable to notify the resource manager on termination
of the thread for the second process. The resource manager can therefore be operable
in response to termination of the thread for the second process to allocate the
resource to the first process. The first and second processes can be call handling
processes for telecommunications apparatus where the resource manager provides
allocation of a telephony resource, such as a modem or network interface, to the
competing call handling applications. A telephony interface and the applications
can be implemented in the Java language.