*/
use MediaWiki\MediaWikiServices;
+use Wikimedia\AtEase\AtEase;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\DBError;
}
}
- if ( ( $flags & self::WRITE_SYNC ) == self::WRITE_SYNC ) {
+ if ( $this->fieldHasFlags( $flags, self::WRITE_SYNC ) ) {
$result = $this->waitForReplication() && $result;
}
return false;
}
- return (bool)$db->affectedRows();
+ $success = (bool)$db->affectedRows();
+ if ( $this->fieldHasFlags( $flags, self::WRITE_SYNC ) ) {
+ $success = $this->waitForReplication() && $success;
+ }
+
+ return $success;
}
protected function doDeleteMulti( array $keys, $flags = 0 ) {
return $this->modifyMulti( [ $key => null ], 0, $flags, self::$OP_DELETE );
}
- public function incr( $key, $step = 1 ) {
+ public function incr( $key, $step = 1, $flags = 0 ) {
list( $shardIndex, $tableName ) = $this->getTableByKey( $key );
$newCount = false;
return $newCount;
}
- public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
- $ok = $this->mergeViaCas( $key, $callback, $exptime, $attempts, $flags );
- if ( ( $flags & self::WRITE_SYNC ) == self::WRITE_SYNC ) {
- $ok = $this->waitForReplication() && $ok;
- }
-
- return $ok;
+ public function decr( $key, $value = 1, $flags = 0 ) {
+ return $this->incr( $key, -$value, $flags );
}
public function changeTTLMulti( array $keys, $exptime, $flags = 0 ) {
}
if ( function_exists( 'gzinflate' ) ) {
- Wikimedia\suppressWarnings();
+ AtEase::suppressWarnings();
$decomp = gzinflate( $serial );
- Wikimedia\restoreWarnings();
+ AtEase::restoreWarnings();
if ( $decomp !== false ) {
$serial = $decomp;