@Override public long readLock() { sync.acquire(DUMMY); return DUMMY; }
@Override public <T> T runLocked(final Job<T> j) { synchronized (lock) { return j.call(); } }
/** * Release the all segment locks. * * @param _stamps array with the lock stamps. */ private void unlockAll(long[] _stamps) { OptimisticLock[] _locks = locks; int sn = _locks.length; for (int i = 0; i < sn; i++) { _locks[i].unlockWrite(_stamps[i]); } }
@Override public void unlockWrite(final long stamp) { sync.release(DUMMY); }
/** * Acquire all segment locks and return an array with the lock stamps. */ private long[] lockAll() { OptimisticLock[] _locks = locks; int sn = _locks.length; long[] _stamps = new long[locks.length]; for (int i = 0; i < sn; i++) { OptimisticLock l = _locks[i]; _stamps[i] = l.writeLock(); } return _stamps; }
@Override public ThreadFactory newThreadFactory(String _namePrefix) { return new GlobalThreadFactory(_namePrefix); }
private int getStamp() { return getState(); }
@Override public long readLock() { sync.acquire(DUMMY); return DUMMY; }
@Override public <T> T runLocked(final Job<T> j) { synchronized (lock) { return j.call(); } }
@Override public void unlockRead(final long stamp) { sync.release(DUMMY); }
/** * Release the all segment locks. * * @param _stamps array with the lock stamps. */ private void unlockAll(long[] _stamps) { OptimisticLock[] _locks = locks; int sn = _locks.length; for (int i = 0; i < sn; i++) { _locks[i].unlockWrite(_stamps[i]); } }
/** * Acquire all segment locks and return an array with the lock stamps. */ private long[] lockAll() { OptimisticLock[] _locks = locks; int sn = _locks.length; long[] _stamps = new long[locks.length]; for (int i = 0; i < sn; i++) { OptimisticLock l = _locks[i]; _stamps[i] = l.writeLock(); } return _stamps; }
@Override public ThreadFactory newThreadFactory(String _namePrefix) { return new GlobalThreadFactory(_namePrefix); }
private int getStamp() { return getState(); }
@Override public long writeLock() { sync.acquire(DUMMY); return DUMMY; }
/** * Lock all segments and run the job. */ public <T> T runTotalLocked(Job<T> j) { long[] _stamps = lockAll(); try { return j.call(); } finally { unlockAll(_stamps); } }
@Override public void unlockRead(final long stamp) { sync.release(DUMMY); }
@Override public long writeLock() { sync.acquire(DUMMY); return DUMMY; }
/** * Lock all segments and run the job. */ public <T> T runTotalLocked(Job<T> j) { long[] _stamps = lockAll(); try { return j.call(); } finally { unlockAll(_stamps); } }
@Override public void unlockWrite(final long stamp) { sync.release(DUMMY); }