in storehaus-memcache/src/main/scala/com/twitter/storehaus/memcache/MemcacheLongStore.scala [62:72]
override def merge(kv: (String, Long)): Future[Option[Long]] = {
val (k, v) = kv
underlying.client.incr(k, v).flatMap {
case Some(res) => Future.value(Some(res - v)) // value before
case None => // memcache does not create on increment
underlying
.client
.add(k, v.as[Buf])
.flatMap { b => if (b) Future.value(None) else merge(kv) }
}
}