sacred/prevent-race-condition

This package allows you to lock some part of code to prevent race condition.

1.0.2 2022-11-19 17:30 UTC

This package is auto-updated.

Last update: 2024-04-21 09:15:29 UTC


README

codecov

This package allows you to lock some part of code to prevent race condition.

Install

composer require sacred/prevent-race-condition

Basic usage

You need PSR-6 or PSR-16 cache to use this

use PreventRaceCondition\RaceConditionFactory;

// $somePSR16Cache is PSR16 any cache instance 
$raceCondition = RaceConditionFactory::fromCacheItemPool($somePSR16Cache);

// or

// $somePSR6Cache is PSR6 any cache instance 
$raceCondition = RaceConditionFactory::fromSimpleCache($somePSR6Cache);


while($raceCondition->isBusy('lock-name')) {
    // wait or do something else
}

$raceCondition->lock('lock-name');

// do something

$raceCondition->release('lock-name');