+
This commit is contained in:
42
vendor/react/async/src/FiberMap.php
vendored
Normal file
42
vendor/react/async/src/FiberMap.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace React\Async;
|
||||
|
||||
use React\Promise\PromiseInterface;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @template T
|
||||
*/
|
||||
final class FiberMap
|
||||
{
|
||||
/** @var array<int,PromiseInterface<T>> */
|
||||
private static array $map = [];
|
||||
|
||||
/**
|
||||
* @param \Fiber<mixed,mixed,mixed,mixed> $fiber
|
||||
* @param PromiseInterface<T> $promise
|
||||
*/
|
||||
public static function setPromise(\Fiber $fiber, PromiseInterface $promise): void
|
||||
{
|
||||
self::$map[\spl_object_id($fiber)] = $promise;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Fiber<mixed,mixed,mixed,mixed> $fiber
|
||||
*/
|
||||
public static function unsetPromise(\Fiber $fiber): void
|
||||
{
|
||||
unset(self::$map[\spl_object_id($fiber)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Fiber<mixed,mixed,mixed,mixed> $fiber
|
||||
* @return ?PromiseInterface<T>
|
||||
*/
|
||||
public static function getPromise(\Fiber $fiber): ?PromiseInterface
|
||||
{
|
||||
return self::$map[\spl_object_id($fiber)] ?? null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user