swordev / mutex
Read-write concurrency control
0.1.0
2020-07-27 12:07 UTC
Requires (Dev)
- phpstan/phpstan: ^0.12.9
- phpunit/phpunit: ^9.1.3
This package is not auto-updated.
Last update: 2024-05-29 05:47:28 UTC
README
Read-write concurrency control
Installation
composer require @swordev/mutex
Usage
File read/write lock
use Swordev\Mutex\FileMutex; $mutex1 = new FileMutex('key'); $mutex2 = new FileMutex('key'); $mutex1->readLock(); // true $mutex2->writeLock(); // false $mutex1->unlock(); // true $mutex2->writeLock(); // true
Timeout
use Swordev\Mutex\FileMutex; $mutex = new FileMutex('key'); $mutex->writeLock(5000);
Contextual lock
use Swordev\Mutex\FileMutex; class Foo { function method() { $mutex = new FileMutex(__CLASS__ . '|' . __FUNCTION__); $mutex->writeLock(); // ... } }
Mutex factory
use Swordev\Mutex\MutexFactory; $mutex = new MutexFactory::create(FileMutex::class, 'key');
Development
Test
composer run test
Analyse
composer run analyse
Author
Juanra GM - https://github.com/juanrgm
Distributed under the MIT license.