Home Features Demos Download Installation User Manual Developer Manual Relation function Credits

Anmelden

inc/semaphore.php

Protects critical sections from concurrency, when exclusive file access is needed.

Function

swSemaphoreSignal()

Reserves exclusive access. The reservation is signalled with an empty file site/indexes/semaphore.php
If the file exists already, the function sleeps for at most $swSemaphoreTimeOut (default 15), then it overrides and proceeds.
(Timeout is needed, as a PHP thread my forget to release.
A global variable $swSemaphore overrides blocking, so it cannot block itself

swSemaphoreRelease()

Releases access.

Sempahore is used in the following functions:

  • db->RebuildIndexes()
  • db->RebuldBitmaps()
  • swBackup()
  • swExport()
  • swFilter()
  • swSnapshot();
  • swPersistance->save();
  • swRecord->WriteCurrent()
  • swRecord->WriteFile()

Others may be needed.

You can use it also in you apps. Don't forget to pair signal with release.

File structure inc folder