Meta Engineer?

The containing class is available as Async\Semaphore in the www repository.

Create a semaphore

public function __construct(
  int $concurrentLimit,
  (function(Tin): Awaitable<Tout>) $f,

The concurrent limit is per instance; for example, if there are two ongoing requests executing the same code, there will be up to concurrentLimit in each request, meaning up to 2 * concurrentLimit in total.


  • int $concurrentLimit
  • (function(Tin): Awaitable<Tout>) $f