@Override public boolean replace(final int key, @NotNull final V oldValue, @NotNull final V newValue) { processQueue(); return _map.replace( key, createReference(key, oldValue, _queue), createReference(key, newValue, _queue) ); }
@Override public boolean replace(final int key, @NotNull final V oldValue, @NotNull final V newValue) { processQueue(); return _map.replace( key, createReference(key, oldValue, _queue), createReference(key, newValue, _queue) ); }
@Override public boolean replace(final int key, @NotNull final V oldValue, @NotNull final V newValue) { processQueue(); return _map.replace( key, createReference(key, oldValue, _queue), createReference(key, newValue, _queue) ); }
@Override public V putIfAbsent(final int key, @NotNull final V value) { processQueue(); final IntReference<V> newReference = createReference(key, value, _queue); while (true) { final IntReference<V> oldReference = _map.putIfAbsent(key, newReference); if (oldReference == null) { return null; } final V oldValue = oldReference.get(); if (oldValue != null) { return oldValue; } final boolean replaced = _map.replace(key, oldReference, newReference); if (replaced) { return null; } } }
@Override public V putIfAbsent(final int key, @NotNull final V value) { processQueue(); final IntReference<V> newReference = createReference(key, value, _queue); while (true) { final IntReference<V> oldReference = _map.putIfAbsent(key, newReference); if (oldReference == null) { return null; } final V oldValue = oldReference.get(); if (oldValue != null) { return oldValue; } final boolean replaced = _map.replace(key, oldReference, newReference); if (replaced) { return null; } } }
@Override public V putIfAbsent(final int key, @NotNull final V value) { processQueue(); final IntReference<V> newReference = createReference(key, value, _queue); while (true) { final IntReference<V> oldReference = _map.putIfAbsent(key, newReference); if (oldReference == null) { return null; } final V oldValue = oldReference.get(); if (oldValue != null) { return oldValue; } final boolean replaced = _map.replace(key, oldReference, newReference); if (replaced) { return null; } } }
@NotNull @Override public V addOrGet(final int key, @NotNull final V value) { processQueue(); final IntReference<V> newReference = createReference(key, value, _queue); while (true) { final IntReference<V> oldReference = _map.putIfAbsent(key, newReference); if (oldReference == null) { return value; } final V oldValue = oldReference.get(); if (oldValue != null) { return oldValue; } final boolean replaced = _map.replace(key, oldReference, newReference); if (replaced) { return value; } } }
@NotNull @Override public V addOrGet(final int key, @NotNull final V value) { processQueue(); final IntReference<V> newReference = createReference(key, value, _queue); while (true) { final IntReference<V> oldReference = _map.putIfAbsent(key, newReference); if (oldReference == null) { return value; } final V oldValue = oldReference.get(); if (oldValue != null) { return oldValue; } final boolean replaced = _map.replace(key, oldReference, newReference); if (replaced) { return value; } } }
@NotNull @Override public V addOrGet(final int key, @NotNull final V value) { processQueue(); final IntReference<V> newReference = createReference(key, value, _queue); while (true) { final IntReference<V> oldReference = _map.putIfAbsent(key, newReference); if (oldReference == null) { return value; } final V oldValue = oldReference.get(); if (oldValue != null) { return oldValue; } final boolean replaced = _map.replace(key, oldReference, newReference); if (replaced) { return value; } } }