19declare(strict_types=1);
55 parent::onBeforeExecutingTestStartOperation();
56 $this->
requestLock(self::PROCESS_NAME_TEST_START_LOCK_CHECK);
64 $this->
releaseLock(self::PROCESS_NAME_TEST_START_LOCK_CHECK);
65 parent::onAfterExecutingTestStartOperation();
73 parent::onBeforeExecutingRandomPassBuildOperation($withTaxonomyTables);
74 $this->
requestLock(self::PROCESS_NAME_RANDOM_PASS_BUILD);
82 $this->
releaseLock(self::PROCESS_NAME_RANDOM_PASS_BUILD);
83 parent::onAfterExecutingRandomPassBuildOperation($withTaxonomyTables);
91 parent::onBeforeExecutingTestStartOperation();
100 $this->
releaseLock(self::PROCESS_NAME_TEST_FINISH);
101 parent::onAfterExecutingTestStartOperation();
107 parent::onBeforeExecutingNamedOperation($operationDescriptor);
113 parent::onAfterExecutingNamedOperation($operationDescriptor);
119 $this->lockFileHandles[$processName] = fopen($lockFilePath,
'w');
120 if (!flock($this->lockFileHandles[$processName], LOCK_EX)) {
121 $this->
logger->error(
"Flock failed for {$lockFilePath}.");
127 $path = $this->lockFileStorage->getAbsolutePath();
128 return $path .
'/' . $processName .
'.lock';
133 flock($this->lockFileHandles[$processName], LOCK_UN);
134 fclose($this->lockFileHandles[$processName]);
Component logger with individual log levels by component id.
onAfterExecutingTestStartOperation()
{}
__construct(private readonly ilTestProcessLockFileStorage $lockFileStorage, private readonly ilLogger|TestLogger $logger)
ilTestProcessLockerFile constructor.
onBeforeExecutingNamedOperation(string $operationDescriptor)
onAfterExecutingRandomPassBuildOperation($withTaxonomyTables=false)
{}
const PROCESS_NAME_TEST_START_LOCK_CHECK
releaseLock($processName)
onBeforeExecutingRandomPassBuildOperation($withTaxonomyTables=false)
{}
const PROCESS_NAME_RANDOM_PASS_BUILD
onAfterExecutingTestFinishOperation()
{}
requestLock($processName)
onAfterExecutingNamedOperation(string $operationDescriptor)
onBeforeExecutingTestStartOperation()
{}
const PROCESS_NAME_TEST_FINISH
onBeforeExecutingTestFinishOperation()
{}
getLockFilePath($processName)