@Nullable @Override public V get(final K key) { return cacheAccess.withFileLock( new Factory<V>() { @Override public V create() { return target.get(key); } }); }
@Override public void remove(K key) { Runnable runnable = cacheAccess.acquireFileLock(); target.removeLater(key, runnable); }
@Override public void put(K key, V value) { Runnable runnable = cacheAccess.acquireFileLock(); target.putLater(key, value, runnable); }