From 1899a82c808bedf62d78037c6ff38e6c6c444fcb Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Tue, 12 Mar 2019 02:49:59 -0700 Subject: [PATCH] objectcache: make the BagOStuff::add() operation more atomic for APC Change-Id: Ifb72b1c17439c80e6d431d5fe2ec9ad9437e3ad7 --- includes/libs/objectcache/APCBagOStuff.php | 8 ++++++++ includes/libs/objectcache/APCUBagOStuff.php | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/includes/libs/objectcache/APCBagOStuff.php b/includes/libs/objectcache/APCBagOStuff.php index 1fedfaf616..847a1eb069 100644 --- a/includes/libs/objectcache/APCBagOStuff.php +++ b/includes/libs/objectcache/APCBagOStuff.php @@ -97,6 +97,14 @@ class APCBagOStuff extends BagOStuff { return true; } + public function add( $key, $value, $exptime = 0, $flags = 0 ) { + return apc_add( + $key . self::KEY_SUFFIX, + $this->setSerialize( $value ), + $exptime + ); + } + protected function setSerialize( $value ) { if ( !$this->nativeSerialize && !$this->isInteger( $value ) ) { $value = serialize( $value ); diff --git a/includes/libs/objectcache/APCUBagOStuff.php b/includes/libs/objectcache/APCUBagOStuff.php index fb43d4ddb3..d5f1edc163 100644 --- a/includes/libs/objectcache/APCUBagOStuff.php +++ b/includes/libs/objectcache/APCUBagOStuff.php @@ -55,6 +55,14 @@ class APCUBagOStuff extends APCBagOStuff { return true; } + public function add( $key, $value, $exptime = 0, $flags = 0 ) { + return apcu_add( + $key . self::KEY_SUFFIX, + $this->setSerialize( $value ), + $exptime + ); + } + public function delete( $key, $flags = 0 ) { apcu_delete( $key . self::KEY_SUFFIX ); -- 2.20.1