From: Aaron Schulz Date: Tue, 12 Mar 2019 10:01:37 +0000 (-0700) Subject: objectcache: make the BagOStuff::add() operation more atomic for WinCache X-Git-Tag: 1.34.0-rc.0~2515^2 X-Git-Url: http://git.cyclocoop.org/%24action?a=commitdiff_plain;h=fea9ebbd6f6065fa686c3bf089049335888f3a2f;p=lhc%2Fweb%2Fwiklou.git objectcache: make the BagOStuff::add() operation more atomic for WinCache Change-Id: I285ed9a7d0894adfe29b0bdc106b7518f655ba45 --- diff --git a/includes/libs/objectcache/WinCacheBagOStuff.php b/includes/libs/objectcache/WinCacheBagOStuff.php index 6b0bec0025..cae0280128 100644 --- a/includes/libs/objectcache/WinCacheBagOStuff.php +++ b/includes/libs/objectcache/WinCacheBagOStuff.php @@ -40,9 +40,13 @@ class WinCacheBagOStuff extends BagOStuff { public function set( $key, $value, $expire = 0, $flags = 0 ) { $result = wincache_ucache_set( $key, serialize( $value ), $expire ); - /* wincache_ucache_set returns an empty array on success if $value - * was an array, bool otherwise */ - return ( is_array( $result ) && $result === [] ) || $result; + return ( $result === [] || $result === true ); + } + + public function add( $key, $value, $exptime = 0, $flags = 0 ) { + $result = wincache_ucache_add( $key, serialize( $value ), $exptime ); + + return ( $result === [] || $result === true ); } public function delete( $key, $flags = 0 ) {