/** Drains the weak / soft value references queue. */ @GuardedBy("evictionLock") void drainValueReferences() { if (!collectValues()) { return; } Reference<? extends V> valueRef; while ((valueRef = valueReferenceQueue().poll()) != null) { @SuppressWarnings("unchecked") InternalReference<V> ref = (InternalReference<V>) valueRef; Node<K, V> node = data.get(ref.getKeyReference()); if ((node != null) && (valueRef == node.getValueReference())) { evictEntry(node, RemovalCause.COLLECTED, 0L); } } }
writer.write(key, newValue); n.setValue(newValue, valueReferenceQueue()); n.setWeight(weight);
writer.write(nodeKey[0], value); n.setValue(value, valueReferenceQueue()); n.setWeight(weight);
if (node == null) { node = nodeFactory.newNode(key, keyReferenceQueue(), value, valueReferenceQueue(), newWeight, now); setVariableTime(node, expireAfterCreate(key, value, expiry, now)); prior.setValue(value, valueReferenceQueue());
weight[1] = weigher.weigh(key, newValue[0]); n = nodeFactory.newNode(key, keyReferenceQueue(), newValue[0], valueReferenceQueue(), weight[1], now[0]); setVariableTime(n, expireAfterCreate(key, newValue[0], expiry(), now[0])); return n; n.setValue(newValue[0], valueReferenceQueue()); n.setWeight(weight[1]);
weight[1] = weigher.weigh(key, newValue[0]); n = nodeFactory.newNode(keyRef, newValue[0], valueReferenceQueue(), weight[1], now[0]); setVariableTime(n, expireAfterCreate(key, newValue[0], expiry(), now[0])); return n; setVariableTime(n, expireAfterCreate(key, newValue[0], expiry(), now[0])); n.setValue(newValue[0], valueReferenceQueue()); n.setWeight(weight[1]); setAccessTime(n, now[0]);
/** Drains the weak / soft value references queue. */ @GuardedBy("evictionLock") void drainValueReferences() { if (!collectValues()) { return; } Reference<? extends V> valueRef; while ((valueRef = valueReferenceQueue().poll()) != null) { @SuppressWarnings("unchecked") InternalReference<V> ref = (InternalReference<V>) valueRef; Node<K, V> node = data.get(ref.getKeyReference()); if ((node != null) && (valueRef == node.getValueReference())) { evictEntry(node, RemovalCause.COLLECTED, 0L); } } }
writer.write(nodeKey[0], value); n.setValue(value, valueReferenceQueue()); n.setWeight(weight);
writer.write(key, newValue); n.setValue(newValue, valueReferenceQueue()); n.setWeight(weight);
if (node == null) { node = nodeFactory.newNode(key, keyReferenceQueue(), value, valueReferenceQueue(), newWeight, now); setVariableTime(node, expireAfterCreate(key, value, expiry, now)); prior.setValue(value, valueReferenceQueue());
weight[1] = weigher.weigh(key, newValue[0]); n = nodeFactory.newNode(key, keyReferenceQueue(), newValue[0], valueReferenceQueue(), weight[1], now[0]); setVariableTime(n, expireAfterCreate(key, newValue[0], expiry(), now[0])); return n; n.setValue(newValue[0], valueReferenceQueue()); n.setWeight(weight[1]);
weight[1] = weigher.weigh(key, newValue[0]); n = nodeFactory.newNode(keyRef, newValue[0], valueReferenceQueue(), weight[1], now[0]); setVariableTime(n, expireAfterCreate(key, newValue[0], expiry(), now[0])); return n; setVariableTime(n, expireAfterCreate(key, newValue[0], expiry(), now[0])); n.setValue(newValue[0], valueReferenceQueue()); n.setWeight(weight[1]); setAccessTime(n, now[0]);