@Override public int drainTo(Collection<? super V> c, int maxElements) { if (maxElements <= 0) { return 0; } lock.lock(); try { return get(drainToAsync(c, maxElements)); } finally { lock.unlock(); } }
@Override public int drainTo(Collection<? super V> c) { lock.lock(); try { return get(drainToAsync(c)); } finally { lock.unlock(); } }
@Override public int drainTo(Collection<? super V> c, int maxElements) { if (maxElements <= 0) { return 0; } lock.lock(); try { return get(drainToAsync(c, maxElements)); } finally { lock.unlock(); } }
@Override public int drainTo(Collection<? super V> c) { lock.lock(); try { return get(drainToAsync(c)); } finally { lock.unlock(); } }
V load(K key) { RLock lock = getLockedLock(key); try { V value; if (atomicExecution) { value = getValue(key); } else { value = getValueLocked(key); } if (value == null) { value = loadValue(key); } return value; } finally { lock.unlock(); } }
@Override public Object get(SharedSessionContractImplementor session, Object key, long txTimestamp) throws CacheException { RLock readLock = mapCache.getReadWriteLock(key).readLock(); readLock.lock(); try { Lockable item = (Lockable) region.get(session, key); if (item != null && item.isReadable(txTimestamp)) { return item.getValue(); } else { return null; } } finally { readLock.unlock(); } }
@Override public Object get(SessionImplementor session, Object key, long txTimestamp) throws CacheException { RLock readLock = mapCache.getReadWriteLock(key).readLock(); readLock.lock(); try { Lockable item = (Lockable) region.get(session, key); if (item != null && item.isReadable(txTimestamp)) { return item.getValue(); } else { return null; } } finally { readLock.unlock(); } }
@Override public Object get(Object key, long txTimestamp) throws CacheException { RLock readLock = mapCache.getReadWriteLock(key).readLock(); readLock.lock(); try { Lockable item = (Lockable) region.get( key ); if (item != null && item.isReadable(txTimestamp)) { return item.getValue(); } else { return null; } } finally { readLock.unlock(); } }
@Override public boolean remove(Object value) { lock.lock(); try { checkComparator(); BinarySearchResult<V> res = binarySearch((V) value, codec); if (res.getIndex() < 0) { return false; } remove((int)res.getIndex()); return true; } finally { lock.unlock(); } }
@Override public boolean remove(Object value) { lock.lock(); try { checkComparator(); BinarySearchResult<V> res = binarySearch((V) value, codec); if (res.getIndex() < 0) { return false; } list.remove((int)res.getIndex()); return true; } finally { lock.unlock(); } }
@Override public boolean remove(Object value) { lock.lock(); try { checkComparator(); BinarySearchResult<V> res = binarySearch((V) value, codec); if (res.getIndex() < 0) { return false; } remove((int)res.getIndex()); return true; } finally { lock.unlock(); } }
@Override public boolean remove(Object value) { lock.lock(); try { checkComparator(); BinarySearchResult<V> res = binarySearch((V) value, codec); if (res.getIndex() < 0) { return false; } list.remove((int)res.getIndex()); return true; } finally { lock.unlock(); } }
@Override public void unlockItem(SessionImplementor session, Object key, SoftLock lock) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(session, key); if (item != null && item.isUnlockable(lock)) { decrementLock(session, key, (Lock)item); } else { handleLockExpiry(session, key, item); } } finally { writeLock.unlock(); } }
@Override public void unlockItem(SharedSessionContractImplementor session, Object key, SoftLock lock) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(session, key); if (item != null && item.isUnlockable(lock)) { decrementLock(session, key, (Lock)item); } else { handleLockExpiry(session, key, item); } } finally { writeLock.unlock(); } }
@Override public void unlockItem(Object key, SoftLock lock) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(key); if (item != null && item.isUnlockable(lock)) { decrementLock(key, (Lock)item); } else { handleLockExpiry(key, item); } } finally { writeLock.unlock(); } }
@Override public boolean afterInsert(Object key, Object value) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(key); if (item == null) { region.put(key, new Item(value, null, region.nextTimestamp())); return true; } else { return false; } } finally { writeLock.unlock(); } }
@Override public boolean afterInsert(Object key, Object value, Object version) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(key); if (item == null) { region.put(key, new Item(value, version, region.nextTimestamp())); return true; } else { return false; } } finally { writeLock.unlock(); } }
@Override public boolean afterInsert(SessionImplementor session, Object key, Object value, Object version) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(session, key); if (item == null) { region.put(session, key, new Item(value, version, region.nextTimestamp())); return true; } else { return false; } } finally { writeLock.unlock(); } }
@Override public boolean afterInsert(SessionImplementor session, Object key, Object value) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(session, key); if (item == null) { region.put(session, key, new Item(value, null, region.nextTimestamp())); return true; } else { return false; } } finally { writeLock.unlock(); } }
@Override public boolean putFromLoad(SharedSessionContractImplementor session, Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride) throws CacheException { RLock writeLock = mapCache.getReadWriteLock(key).writeLock(); writeLock.lock(); try { Lockable item = (Lockable) region.get(session, key); Comparator<Object> comparator = ((TransactionalDataRegion)region).getCacheDataDescription().getVersionComparator(); boolean writeable = item == null || item.isWriteable(txTimestamp, version, comparator); if (writeable) { region.put(session, key, new Item(value, version, region.nextTimestamp())); return true; } return false; } finally { writeLock.unlock(); } }