项目作者: mmeyer2k

项目描述 :
:gem: A semaphore wrapper for closures
高级语言: PHP
项目地址: git://github.com/mmeyer2k/semlock.git
创建时间: 2019-03-30T18:59:49Z
项目社区:https://github.com/mmeyer2k/semlock

开源协议:MIT License

下载


:gem:semlock

A clean way to wrap semaphores around closures to perform exclusive execution of code.
Semlock also allows for naming semaphones with descriptive strings instead of ints.

Read my blog posting about this tool here:

https://mmeyer2k.github.io/posts/php-exclusive-execution-closure-semaphore

Install

composer require mmeyer2k/semlock

Use

Basic Usage

  1. \mmeyer2k\SemLock::synchronize('some_key', function () {
  2. $x = get_number_from_database();
  3. $x++;
  4. sleep(5);
  5. save_number_to_database($x);
  6. });

Handling return values

The semlock library will pass return values from the closure back to the calling context.

  1. $returned = \mmeyer2k\SemLock::synchronize('some_key', function () {
  2. return 'something';
  3. });
  4. # $returned === 'something'