Search in sources :

Example 26 with Lock

use of java.util.concurrent.locks.Lock in project tomcat by apache.

the class OperationInfo method getSignature.

/**
     * @return the set of parameters for this operation.
     */
public ParameterInfo[] getSignature() {
    Lock readLock = parametersLock.readLock();
    readLock.lock();
    try {
        return this.parameters;
    } finally {
        readLock.unlock();
    }
}
Also used : Lock(java.util.concurrent.locks.Lock) ReentrantReadWriteLock(java.util.concurrent.locks.ReentrantReadWriteLock) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock)

Example 27 with Lock

use of java.util.concurrent.locks.Lock in project tomcat by apache.

the class OperationInfo method addParameter.

// --------------------------------------------------------- Public Methods
/**
     * Add a new parameter to the set of arguments for this operation.
     *
     * @param parameter The new parameter descriptor
     */
public void addParameter(ParameterInfo parameter) {
    Lock writeLock = parametersLock.writeLock();
    writeLock.lock();
    try {
        ParameterInfo[] results = new ParameterInfo[parameters.length + 1];
        System.arraycopy(parameters, 0, results, 0, parameters.length);
        results[parameters.length] = parameter;
        parameters = results;
        this.info = null;
    } finally {
        writeLock.unlock();
    }
}
Also used : MBeanParameterInfo(javax.management.MBeanParameterInfo) Lock(java.util.concurrent.locks.Lock) ReentrantReadWriteLock(java.util.concurrent.locks.ReentrantReadWriteLock) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock)

Example 28 with Lock

use of java.util.concurrent.locks.Lock in project weave by continuuity.

the class DefaultServiceDiscovered method watchChanges.

@Override
public Cancellable watchChanges(ChangeListener listener, Executor executor) {
    ListenerCaller caller = new ListenerCaller(listener, executor);
    // Add the new listener with a write lock.
    Lock writeLock = callerLock.writeLock();
    writeLock.lock();
    try {
        listenerCallers.add(caller);
    } finally {
        writeLock.unlock();
    }
    // Invoke listener for the first time.
    // Race would happen between this method and the setDiscoverables() method, but it's ok as the contract of
    // adding a new listener is that onChange will be called at least once. The actual changes is already
    // reflected by the atomic reference "discoverables", hence it's consistent.
    caller.invoke();
    return caller;
}
Also used : Lock(java.util.concurrent.locks.Lock) ReentrantReadWriteLock(java.util.concurrent.locks.ReentrantReadWriteLock) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock)

Example 29 with Lock

use of java.util.concurrent.locks.Lock in project weave by continuuity.

the class DefaultServiceDiscovered method setDiscoverables.

void setDiscoverables(Set<Discoverable> discoverables) {
    this.discoverables.set(discoverables);
    // Collect all listeners with a read lock to the listener list.
    List<ListenerCaller> callers = Lists.newArrayList();
    Lock readLock = callerLock.readLock();
    readLock.lock();
    try {
        callers.addAll(listenerCallers);
    } finally {
        readLock.unlock();
    }
    // Invoke listeners.
    for (ListenerCaller caller : callers) {
        caller.invoke();
    }
}
Also used : Lock(java.util.concurrent.locks.Lock) ReentrantReadWriteLock(java.util.concurrent.locks.ReentrantReadWriteLock) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock)

Example 30 with Lock

use of java.util.concurrent.locks.Lock in project che by eclipse.

the class StripedLocks method writeLock.

/**
     * Acquire write lock for provided key.
     */
public Unlocker writeLock(String key) {
    Lock lock = striped.get(key).writeLock();
    lock.lock();
    return new LockUnlocker(lock);
}
Also used : Lock(java.util.concurrent.locks.Lock) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock)

Aggregations

Lock (java.util.concurrent.locks.Lock)717 ReentrantReadWriteLock (java.util.concurrent.locks.ReentrantReadWriteLock)171 ReadWriteLock (java.util.concurrent.locks.ReadWriteLock)144 ReentrantLock (java.util.concurrent.locks.ReentrantLock)96 Test (org.junit.Test)57 ArrayList (java.util.ArrayList)41 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)36 IOException (java.io.IOException)33 CountDownLatch (java.util.concurrent.CountDownLatch)30 HashMap (java.util.HashMap)22 Triple (org.apache.clerezza.commons.rdf.Triple)21 Map (java.util.Map)20 Ignite (org.apache.ignite.Ignite)17 Condition (java.util.concurrent.locks.Condition)15 OSBTreeBonsaiLocalException (com.orientechnologies.orient.core.exception.OSBTreeBonsaiLocalException)13 OAtomicOperation (com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperation)13 HashSet (java.util.HashSet)13 BlankNodeOrIRI (org.apache.clerezza.commons.rdf.BlankNodeOrIRI)13 AtomicLong (java.util.concurrent.atomic.AtomicLong)12 OCacheEntry (com.orientechnologies.orient.core.storage.cache.OCacheEntry)11