in storehaus-algebra/src/main/scala/com/twitter/storehaus/algebra/ConcurrentHashMapMergeableStore.scala [40:50]
override def merge(kv: (K, V)): Future[Option[V]] = {
val (k, v) = kv
map.get(k) match {
case null =>
if (map.putIfAbsent(k, v) == null) Future.None
else merge(kv)
case oldV =>
if (map.replace(k, oldV, semigroup.plus(oldV, v))) Future.value(Some(oldV))
else merge(kv)
}
}