diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-01-06 12:58:43 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-01-06 12:58:43 +0100 |
commit | cd147bb37ae247082442f87b3cdd7d3d752e2d37 (patch) | |
tree | e911f9ce16138b16c34dad4a9450666d158e6f41 /lib/private/memcache/apc.php | |
parent | 1df1b55b66f0bcc696a1ee9aeb8362dee9889100 (diff) | |
download | nextcloud-server-cd147bb37ae247082442f87b3cdd7d3d752e2d37.tar.gz nextcloud-server-cd147bb37ae247082442f87b3cdd7d3d752e2d37.zip |
Use APCIterator for Memcache\APC::clear()
Diffstat (limited to 'lib/private/memcache/apc.php')
-rw-r--r-- | lib/private/memcache/apc.php | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/lib/private/memcache/apc.php b/lib/private/memcache/apc.php index 575ee4427db..d5bc1498d65 100644 --- a/lib/private/memcache/apc.php +++ b/lib/private/memcache/apc.php @@ -9,15 +9,8 @@ namespace OC\Memcache; class APC extends Cache { - /** - * entries in APC gets namespaced to prevent collisions between owncloud instances and users - */ - protected function getNameSpace() { - return $this->prefix; - } - public function get($key) { - $result = apc_fetch($this->getNamespace() . $key, $success); + $result = apc_fetch($this->getPrefix() . $key, $success); if (!$success) { return null; } @@ -25,26 +18,22 @@ class APC extends Cache { } public function set($key, $value, $ttl = 0) { - return apc_store($this->getNamespace() . $key, $value, $ttl); + return apc_store($this->getPrefix() . $key, $value, $ttl); } public function hasKey($key) { - return apc_exists($this->getNamespace() . $key); + return apc_exists($this->getPrefix() . $key); } public function remove($key) { - return apc_delete($this->getNamespace() . $key); + return apc_delete($this->getPrefix() . $key); } public function clear($prefix = '') { - $ns = $this->getNamespace() . $prefix; - $cache = apc_cache_info('user'); - foreach ($cache['cache_list'] as $entry) { - if (strpos($entry['info'], $ns) === 0) { - apc_delete($entry['info']); - } - } - return true; + $ns = $this->getPrefix() . $prefix; + $ns = preg_quote($ns, '/'); + $iter = new \APCIterator('user', '/^' . $ns . '/'); + return apc_delete($iter); } static public function isAvailable() { |