@Override
 public void beforeLockRelease(FileLock.State currentCacheState) {
   target.beforeLockRelease(currentCacheState);
 }
 @Override
 public void finishWork() {
   target.finishWork();
 }
 @Override
 public void remove(K key) {
   Runnable runnable = cacheAccess.acquireFileLock();
   target.removeLater(key, runnable);
 }
 @Override
 public void afterLockAcquire(FileLock.State currentCacheState) {
   target.afterLockAcquire(currentCacheState);
 }
 @Override
 public void put(K key, V value) {
   Runnable runnable = cacheAccess.acquireFileLock();
   target.putLater(key, value, runnable);
 }