• Модуль: security
  • Путь к файлу: ~/bitrix/modules/security/classes/mysql/database.php
  • Класс: CSecurityDB
  • Вызов: CSecurityDB::Lock
static function Lock($id, $timeout = 60)
{
	static $lock_id = "";

	if ($id === false)
	{
		if ($lock_id)
		{
			$rsLock = CSecurityDB::Query("DO RELEASE_LOCK('".$lock_id."')", "Module: security; Class: CSecurityDB; Function: Lock; File: ".__FILE__."; Line: ".__LINE__);
		}
		else
		{
			$rsLock = false;
		}
	}
	else
	{
		$rsLock = CSecurityDB::Query("SELECT GET_LOCK('".md5($id)."', ".intval($timeout).") as L", "Module: security; Class: CSecurityDB; Function: Lock; File: ".__FILE__."; Line: ".__LINE__);
		if ($rsLock)
		{
			$arLock = CSecurityDB::Fetch($rsLock);
			if ($arLock["L"] == "0")
				return false;
			else
				$lock_id = md5($id);
		}
	}
	return is_object($rsLock);
}