/** Methods for tracking and triggering a clean **/ boolean needsCleaning() { // use strictly-greater-than so we don't clean when limit is 0 return used() > nextClean && updateNextClean(); }
private boolean updateNextClean() { while (true) { long current = nextClean; long reclaiming = this.reclaiming; long next = reclaiming + (long) (this.limit * cleanThreshold); if (current == next || nextCleanUpdater.compareAndSet(this, current, next)) return used() > next; } }
/** Methods for tracking and triggering a clean **/ boolean needsCleaning() { // use strictly-greater-than so we don't clean when limit is 0 return used() > nextClean && updateNextClean(); }
/** Methods for tracking and triggering a clean **/ boolean needsCleaning() { // use strictly-greater-than so we don't clean when limit is 0 return used() > nextClean && updateNextClean(); }
private boolean updateNextClean() { while (true) { long current = nextClean; long reclaiming = this.reclaiming; long next = reclaiming + (long) (this.limit * cleanThreshold); if (current == next || nextCleanUpdater.compareAndSet(this, current, next)) return used() > next; } }
private boolean updateNextClean() { while (true) { long current = nextClean; long reclaiming = this.reclaiming; long next = reclaiming + (long) (this.limit * cleanThreshold); if (current == next || nextCleanUpdater.compareAndSet(this, current, next)) return used() > next; } }
private boolean updateNextClean() { while (true) { long current = nextClean; long reclaiming = this.reclaiming; long next = reclaiming + (long) (this.limit * cleanThreshold); if (current == next || nextCleanUpdater.compareAndSet(this, current, next)) return used() > next; } }
/** Methods for tracking and triggering a clean **/ boolean needsCleaning() { // use strictly-greater-than so we don't clean when limit is 0 return used() > nextClean && updateNextClean(); }
/** Methods for tracking and triggering a clean **/ boolean needsCleaning() { // use strictly-greater-than so we don't clean when limit is 0 return used() > nextClean && updateNextClean(); }
private boolean updateNextClean() { while (true) { long current = nextClean; long reclaiming = this.reclaiming; long next = reclaiming + (long) (this.limit * cleanThreshold); if (current == next || nextCleanUpdater.compareAndSet(this, current, next)) return used() > next; } }