Elgg\Database\Mutex::unlock PHP Method

unlock() public method

Unlocks mutex
public unlock ( string $namespace ) : void
$namespace string Namespace to use for the database table
return void
    public function unlock($namespace)
    {
        $this->assertNamespace($namespace);
        $this->db->deleteData("DROP TABLE {$this->db->prefix}{$namespace}_lock");
        $this->logger->notice("Mutex unlocked for {$namespace}.");
    }

Usage Example

Example #1
0
 /**
  * Run the upgrade process
  *
  * @return array $result Associative array containing possible errors
  */
 public function run()
 {
     $result = array('failure' => false, 'reason' => '');
     // prevent someone from running the upgrade script in parallel (see #4643)
     if (!$this->mutex->lock('upgrade')) {
         $result['failure'] = true;
         $result['reason'] = $this->translator->translate('upgrade:locked');
         return $result;
     }
     // disable the system log for upgrades to avoid exceptions when the schema changes.
     $this->events->unregisterHandler('log', 'systemlog', 'system_log_default_logger');
     $this->events->unregisterHandler('all', 'all', 'system_log_listener');
     // turn off time limit
     set_time_limit(0);
     if ($this->getUnprocessedUpgrades()) {
         $this->processUpgrades();
     }
     $this->events->trigger('upgrade', 'system', null);
     elgg_flush_caches();
     $this->mutex->unlock('upgrade');
     return $result;
 }