|
|
|
|
@ -519,14 +519,17 @@ class Server extends ServerContainer implements IServerContainer { |
|
|
|
|
); |
|
|
|
|
}); |
|
|
|
|
$this->registerService('LockingProvider', function (Server $c) { |
|
|
|
|
if ($c->getConfig()->getSystemValue('filelocking.enabled', true) or (defined('PHPUNIT_RUN') && PHPUNIT_RUN)) { |
|
|
|
|
$ini = $c->getIniWrapper(); |
|
|
|
|
$config = $c->getConfig(); |
|
|
|
|
$ttl = $config->getSystemValue('filelocking.ttl', max(3600, $ini->getNumeric('max_execution_time'))); |
|
|
|
|
if ($config->getSystemValue('filelocking.enabled', true) or (defined('PHPUNIT_RUN') && PHPUNIT_RUN)) { |
|
|
|
|
/** @var \OC\Memcache\Factory $memcacheFactory */ |
|
|
|
|
$memcacheFactory = $c->getMemCacheFactory(); |
|
|
|
|
$memcache = $memcacheFactory->createLocking('lock'); |
|
|
|
|
if (!($memcache instanceof \OC\Memcache\NullCache)) { |
|
|
|
|
return new MemcacheLockingProvider($memcache); |
|
|
|
|
return new MemcacheLockingProvider($memcache, $ttl); |
|
|
|
|
} |
|
|
|
|
return new DBLockingProvider($c->getDatabaseConnection(), $c->getLogger(), new TimeFactory()); |
|
|
|
|
return new DBLockingProvider($c->getDatabaseConnection(), $c->getLogger(), new TimeFactory(), $ttl); |
|
|
|
|
} |
|
|
|
|
return new NoopLockingProvider(); |
|
|
|
|
}); |
|
|
|
|
|