in storehaus-algebra/src/main/scala/com/twitter/storehaus/algebra/MergeableJMapLongStore.scala [62:75]
override def merge(kv: (K, V)): Future[Option[V]] = {
Future.value {
this.synchronized {
Option(dataContainer.get(kv._1)) match {
case start@Some(value) =>
dataContainer.put(kv._1, Semigroup.plus(value, kv._2))
start
case None =>
this.put((kv._1, Some(kv._2)))
None
}
}
}
}