org.objectweb.perseus.concurrency.pessimistic
Class RWFifoLock
java.lang.Object
org.objectweb.perseus.concurrency.pessimistic.Lock
org.objectweb.perseus.concurrency.pessimistic.RWFifoLock
- public final class RWFifoLock
- extends Lock
A lock associated to an oid (see the "locks" map within the pessimistic
concurrency manager).
Provides "one writer/multiple readers" concurrency policy with a FIFO
scheduling.
- Author:
- E. Bruneton, P. Dechamboux, S.Chassande-Barrioz
Method Summary |
boolean |
close(java.lang.Object task)
Removes the given context from the reader and writer lists of this
lock. |
byte |
getMax()
|
void |
readIntention(java.lang.Object task)
Acquires this lock in read mode for the given context. |
void |
writeIntention(java.lang.Object task)
Acquires this lock in write mode for the given context. |
Methods inherited from class org.objectweb.perseus.concurrency.pessimistic.Lock |
reserve |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LOCKS
protected static final LockValue LOCKS
semaphore
protected final Semaphore semaphore
RWFifoLock
public RWFifoLock()
RWFifoLock
public RWFifoLock(java.lang.Object hints,
DependencyGraph dg)
readIntention
public void readIntention(java.lang.Object task)
throws ConcurrencyException
- Acquires this lock in read mode for the given context. This method
blocks until the lock can be acquired in read mode by this context.
- Specified by:
readIntention
in class Lock
- Parameters:
task
- a context.
- Throws:
ConcurrencyException
writeIntention
public void writeIntention(java.lang.Object task)
throws ConcurrencyException
- Acquires this lock in write mode for the given context. This method
blocks until the lock can be acquired in write mode by this context.
- Specified by:
writeIntention
in class Lock
- Parameters:
task
- a context.
- Throws:
ConcurrencyException
close
public boolean close(java.lang.Object task)
- Removes the given context from the reader and writer lists of this
lock.
- Specified by:
close
in class Lock
- Parameters:
task
- a context
- Returns:
- true if the reader and writer list are empty, after the
context has been removed from these lists. In such a case, this
object can be removed from the 'locks' map.
getMax
public byte getMax()
- Specified by:
getMax
in class Lock
Copyright © 2000-2002 France Telecom S.A., INRIA, IMAG-LSR All Rights Reserved.