protected function doIncrement($key, $offset, $initial, $expire)
{
$current = $this->get($key, $token);
if ($current === false) {
$success = $this->add($key, $initial, $expire);
return $success ? $initial : false;
}
// NaN, doesn't compute
if (!is_numeric($current)) {
return false;
}
$value = $current + $offset;
$value = max(0, $value);
$success = $this->cas($token, $key, $value, $expire);
return $success ? $value : false;
}