EDU.oswego.cs.dl.util.concurrent

Class LayeredSync

public class LayeredSync extends Object implements Sync

A class that can be used to compose Syncs. A LayeredSync object manages two other Sync objects, outer and inner. The acquire operation invokes outer.acquire() followed by inner.acquire(), but backing out of outer (via release) upon an exception in inner. The other methods work similarly.

LayeredSyncs can be used to compose arbitrary chains by arranging that either of the managed Syncs be another LayeredSync.

[ Introduction to this package. ]

Field Summary
protected Syncinner_
protected Syncouter_
Constructor Summary
LayeredSync(Sync outer, Sync inner)
Create a LayeredSync managing the given outer and inner Sync objects
Method Summary
voidacquire()
booleanattempt(long msecs)
voidrelease()

Field Detail

inner_

protected final Sync inner_

outer_

protected final Sync outer_

Constructor Detail

LayeredSync

public LayeredSync(Sync outer, Sync inner)
Create a LayeredSync managing the given outer and inner Sync objects

Method Detail

acquire

public void acquire()

attempt

public boolean attempt(long msecs)

release

public void release()