summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/private/server.php18
-rw-r--r--lib/public/iservercontainer.php8
2 files changed, 26 insertions, 0 deletions
diff --git a/lib/private/server.php b/lib/private/server.php
index aeea4a6485e..7c8e59c8aa1 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -43,6 +43,7 @@ use OC\Command\AsyncBus;
use OC\Diagnostics\NullQueryLogger;
use OC\Diagnostics\EventLogger;
use OC\Diagnostics\QueryLogger;
+use OC\Lock\MemcacheLockingProvider;
use OC\Mail\Mailer;
use OC\Memcache\ArrayCache;
use OC\Http\Client\ClientService;
@@ -420,6 +421,13 @@ class Server extends SimpleContainer implements IServerContainer {
$this->getLogger()
);
});
+ $this->registerService('LockingProvider', function (Server $c) {
+ /** @var \OC\Memcache\Factory $memcacheFactory */
+ $memcacheFactory = $c->getMemCacheFactory();
+ return new MemcacheLockingProvider(
+ $memcacheFactory->createDistributed('lock')
+ );
+ });
}
/**
@@ -908,4 +916,14 @@ class Server extends SimpleContainer implements IServerContainer {
public function getTrustedDomainHelper() {
return $this->query('TrustedDomainHelper');
}
+
+ /**
+ * Get the locking provider
+ *
+ * @return \OCP\Lock\ILockingProvider
+ * @since 8.1.0
+ */
+ public function getLockingProvider() {
+ return $this->query('LockingProvider');
+ }
}
diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index 5dd545aed37..8f0bede6cc8 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -413,4 +413,12 @@ interface IServerContainer {
* @since 8.1.0
*/
public function getMailer();
+
+ /**
+ * Get the locking provider
+ *
+ * @return \OCP\Lock\ILockingProvider
+ * @since 8.1.0
+ */
+ public function getLockingProvider();
}