Made default BagOStuff::incr() function more like memcached.

Change-Id: Ia216f20fdcf855448e2f2e4d99667e72c6254f82
This commit is contained in:
Aaron 2012-09-05 11:51:04 -07:00
parent 2ac77be111
commit 676446ef90

View file

@ -167,19 +167,18 @@ abstract class BagOStuff {
* Increase stored value of $key by $value while preserving its TTL
* @param $key String: Key to increase
* @param $value Integer: Value to add to $key (Default 1)
* @return null if lock is not possible else $key value increased by $value
* @return integer
* @return integer|bool New value or false on failure
*/
public function incr( $key, $value = 1 ) {
if ( !$this->lock( $key ) ) {
return null;
return false;
}
$value = intval( $value );
if ( ( $n = $this->get( $key ) ) !== false ) {
$n += $value;
$this->set( $key, $n ); // exptime?
$n = $this->get( $key );
if ( $this->isInteger( $n ) ) { // key exists?
$n += intval( $value );
$this->set( $key, max( 0, $n ) ); // exptime?
} else {
$n = false;
}
$this->unlock( $key );
@ -220,7 +219,7 @@ abstract class BagOStuff {
}
/**
* Convert an optionally absolute expiry time to a relative time. If an
* Convert an optionally absolute expiry time to a relative time. If an
* absolute time is specified which is in the past, use a short expiry time.
*
* @param $exptime integer