> */ final class TimingsCollectionTask extends AsyncTask{ private const TLS_KEY_RESOLVER = "resolver"; /** * @phpstan-param PromiseResolver> $promiseResolver */ public function __construct(PromiseResolver $promiseResolver){ $this->storeLocal(self::TLS_KEY_RESOLVER, $promiseResolver); } public function onRun() : void{ $this->setResult(TimingsHandler::printCurrentThreadRecords()); } public function onCompletion() : void{ /** * @var string[] $result * @phpstan-var list $result */ $result = $this->getResult(); /** * @var PromiseResolver $promiseResolver * @phpstan-var PromiseResolver> $promiseResolver */ $promiseResolver = $this->fetchLocal(self::TLS_KEY_RESOLVER); $promiseResolver->resolve($result); } }