com.sun.javatest
Class ResourceTable

java.lang.Object
  extended by com.sun.javatest.ResourceTable

public class ResourceTable
extends java.lang.Object

A table providing simple named locks for arbitrary resources.


Constructor Summary
ResourceTable()
          Create a resource table.
ResourceTable(int initialSize)
          Create a resource table of a specified size.
 
Method Summary
 boolean acquire(java.lang.String[] resourceNames, int timeout)
          Try to acquire a set of named locks.
 void release(java.lang.String[] resourceNames)
          Release a set of previously acquired locks.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceTable

public ResourceTable()
Create a resource table.


ResourceTable

public ResourceTable(int initialSize)
Create a resource table of a specified size.

Parameters:
initialSize - a hint as to the initial capacity to make the table
Method Detail

acquire

public boolean acquire(java.lang.String[] resourceNames,
                       int timeout)
                throws java.lang.InterruptedException
Try to acquire a set of named locks. To avoid deadlocks, the locks are acquired in a canonical order (alphabetical by name.)

Parameters:
resourceNames - a list of names identifying locks to be acquired.
timeout - a maximum time, in milliseconds to ait for the locks to become available.
Returns:
true if and only if all the locks were successfully acquired
Throws:
java.lang.InterruptedException - is the method was interrupted while waiting for the locks to become available.

release

public void release(java.lang.String[] resourceNames)
Release a set of previously acquired locks. The named locks are only released if currently owned by the same thread that acquired them.

Parameters:
resourceNames - the names of the locks to be released


Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.