public class LockHelper extends Object
Modifier and Type | Field and Description |
---|---|
static String |
DOCUMENT_LOCK |
static String |
LOCK |
static int |
NB_TRY |
static int |
SLEEP_DURATION |
Modifier and Type | Method and Description |
---|---|
static void |
doAtomically(String key,
Runnable runnable)
Runs a
Runnable atomically, in a cluster-wide critical section. |
static <R> R |
doAtomically(String key,
Supplier<R> supplier)
Runs a
Supplier atomically, in a cluster-wide critical section. |
protected static boolean |
tryLock(String key,
KeyValueStore kvStore) |
protected static void |
unlock(String key,
KeyValueStore kvStore) |
public static final String DOCUMENT_LOCK
public static final String LOCK
public static final int NB_TRY
public static final int SLEEP_DURATION
public static void doAtomically(String key, Runnable runnable) throws ConcurrentUpdateException
Runnable
atomically, in a cluster-wide critical section.key
- the key used to determine atomicityrunnable
- the runnableConcurrentUpdateException
public static <R> R doAtomically(String key, Supplier<R> supplier) throws ConcurrentUpdateException
Supplier
atomically, in a cluster-wide critical section.key
- the key used to determine atomicitysupplier
- the supplierConcurrentUpdateException
protected static boolean tryLock(String key, KeyValueStore kvStore) throws InterruptedException
InterruptedException
protected static void unlock(String key, KeyValueStore kvStore)
Copyright © 2018 Nuxeo. All rights reserved.