<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
*/
private static $staticConnection;
+ /** @var bool */
+ private $_locked = false;
+
/**
* Override the behaviour of connect, due there is just one, static connection at all
*
return true;
}
+ /** Mock for locking tables */
+ public function lock($table)
+ {
+ if ($this->_locked) {
+ return false;
+ }
+
+ $this->in_transaction = true;
+ $this->_locked = true;
+
+ return true;
+ }
+
+ /** Mock for unlocking tables */
+ public function unlock()
+ {
+ // See here: https://dev.mysql.com/doc/refman/5.7/en/lock-tables-and-transactions.html
+ $this->performCommit();
+
+ $this->in_transaction = false;
+ $this->_locked = false;
+
+ return true;
+ }
+
/**
* Does a commit
*
return self::$staticConnection;
}
- /**
- * Perform a global commit for every nested transaction of the static connection
- */
- public static function statCommit()
- {
- if (isset(self::$staticConnection)) {
- while (self::$staticConnection->getTransactionDepth() > 0) {
- self::$staticConnection->commit();
- }
- }
- }
-
/**
* Perform a global rollback for every nested transaction of the static connection
*/