summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2019-10-19 11:11:52 +0200
committerGitHub <noreply@github.com>2019-10-19 11:11:52 +0200
commit6c0e6b531dfd3061d1c00cbabd6732266d801bb9 (patch)
tree808519a2afd4ee30e2a0e6bc5f2fd9ebcca38262
parent6b505fe3b5e460e0ea75a233d51247ef4c04d03e (diff)
parent53f8f21cc97386c123cef1d833be1c556f63297d (diff)
downloadnextcloud-server-6c0e6b531dfd3061d1c00cbabd6732266d801bb9.tar.gz
nextcloud-server-6c0e6b531dfd3061d1c00cbabd6732266d801bb9.zip
Merge pull request #17579 from nextcloud/backport/17543/stable17
[stable17] Let SCSS cleanup only run once
-rw-r--r--lib/private/Template/SCSSCacher.php8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php
index 9bdaca3a674..c6d5fc8ef71 100644
--- a/lib/private/Template/SCSSCacher.php
+++ b/lib/private/Template/SCSSCacher.php
@@ -117,7 +117,7 @@ class SCSSCacher {
$this->serverRoot = $serverRoot;
$this->cacheFactory = $cacheFactory;
$this->depsCache = $cacheFactory->createDistributed('SCSS-deps-' . md5($this->urlGenerator->getBaseUrl()));
- $this->isCachedCache = $cacheFactory->createLocal('SCSS-cached-' . md5($this->urlGenerator->getBaseUrl()));
+ $this->isCachedCache = $cacheFactory->createDistributed('SCSS-cached-' . md5($this->urlGenerator->getBaseUrl()));
$lockingCache = $cacheFactory->createDistributed('SCSS-locks-' . md5($this->urlGenerator->getBaseUrl()));
if (!($lockingCache instanceof IMemcache)) {
$lockingCache = new NullCache();
@@ -269,8 +269,8 @@ class SCSSCacher {
private function variablesChanged(): bool {
$injectedVariables = $this->getInjectedVariables();
if ($this->config->getAppValue('core', 'theming.variables') !== md5($injectedVariables)) {
- $this->resetCache();
$this->config->setAppValue('core', 'theming.variables', md5($injectedVariables));
+ $this->resetCache();
return true;
}
return false;
@@ -364,6 +364,9 @@ class SCSSCacher {
* We need to regenerate all files when variables change
*/
public function resetCache() {
+ if (!$this->lockingCache->add('resetCache', 'locked!', 120)) {
+ return;
+ }
$this->injectedVariables = null;
// do not clear locks
@@ -381,6 +384,7 @@ class SCSSCacher {
}
}
$this->logger->debug('SCSSCacher: css cache cleared!');
+ $this->lockingCache->remove('resetCache');
}
/**