|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.netflix.curator.framework.recipes.locks.InterProcessMutex
public class InterProcessMutex
A re-entrant mutex that works across JVMs. Uses Zookeeper to hold the lock. All processes in all JVMs that use the same lock path will achieve an inter-process critical section. Further, this mutex is "fair" - each user will get the mutex in the order requested (from ZK's point of view)
| Constructor Summary | |
|---|---|
InterProcessMutex(com.netflix.curator.framework.CuratorFramework client,
java.lang.String path)
|
|
| Method Summary | |
|---|---|
void |
acquire()
Acquire the mutex - blocking until it's available. |
boolean |
acquire(long time,
java.util.concurrent.TimeUnit unit)
Acquire the mutex - blocks until it's available or the given time expires. |
protected byte[] |
getLockNodeBytes()
|
java.util.Collection<java.lang.String> |
getParticipantNodes()
Return a sorted list of all current nodes participating in the lock |
boolean |
isAcquiredInThisProcess()
Returns true if the mutex is acquired by a thread in this JVM |
void |
makeRevocable(RevocationListener<InterProcessMutex> listener)
Make the lock revocable. |
void |
makeRevocable(RevocationListener<InterProcessMutex> listener,
java.util.concurrent.Executor executor)
Make the lock revocable. |
void |
release()
Perform one release of the mutex if the calling thread is the same thread that acquired it. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public InterProcessMutex(com.netflix.curator.framework.CuratorFramework client,
java.lang.String path)
client - clientpath - the path to lock| Method Detail |
|---|
public void acquire()
throws java.lang.Exception
release()
acquire in interface InterProcessLockjava.lang.Exception - ZK errors, interruptions, another thread owns the lock
public boolean acquire(long time,
java.util.concurrent.TimeUnit unit)
throws java.lang.Exception
release()
acquire in interface InterProcessLocktime - time to waitunit - time unit
java.lang.Exception - ZK errors, interruptions, another thread owns the lockpublic boolean isAcquiredInThisProcess()
isAcquiredInThisProcess in interface InterProcessLock
public void release()
throws java.lang.Exception
release in interface InterProcessLockjava.lang.Exception - ZK errors, interruptions, current thread does not own the lock
public java.util.Collection<java.lang.String> getParticipantNodes()
throws java.lang.Exception
java.lang.Exception - ZK errors, interruptions, etc.public void makeRevocable(RevocationListener<InterProcessMutex> listener)
Revocable
makeRevocable in interface Revocable<InterProcessMutex>listener - the listener
public void makeRevocable(RevocationListener<InterProcessMutex> listener,
java.util.concurrent.Executor executor)
Revocable
makeRevocable in interface Revocable<InterProcessMutex>listener - the listenerexecutor - executor for the listenerprotected byte[] getLockNodeBytes()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||