Beispiel #1
0
 /**
  * @covers BagOStuff::getScopedLock
  */
 public function testGetScopedLock()
 {
     $key = wfMemcKey('test');
     $value1 = $this->cache->getScopedLock($key, 0);
     $value2 = $this->cache->getScopedLock($key, 0);
     $this->assertType(ScopedCallback::class, $value1, 'First call returned lock');
     $this->assertNull($value2, 'Duplicate call returned no lock');
     unset($value1);
     $value3 = $this->cache->getScopedLock($key, 0);
     $this->assertType(ScopedCallback::class, $value3, 'Lock returned callback after release');
     unset($value3);
     $value1 = $this->cache->getScopedLock($key, 0, 5, 'reentry');
     $value2 = $this->cache->getScopedLock($key, 0, 5, 'reentry');
     $this->assertType(ScopedCallback::class, $value1, 'First reentrant call returned lock');
     $this->assertType(ScopedCallback::class, $value1, 'Second reentrant call returned lock');
 }
 /**
  * @param string $key A language message cache key that stores blobs
  * @param integer $timeout Wait timeout in seconds
  * @return null|ScopedCallback
  */
 protected function getReentrantScopedLock($key, $timeout = self::WAIT_SEC)
 {
     return $this->mMemc->getScopedLock($key, $timeout, self::LOCK_TTL, __METHOD__);
 }