*/ private NonThreadSafeValue $compressor; public function __construct( private string $data, CompressBatchPromise $promise, Compressor $compressor ){ $this->compressor = new NonThreadSafeValue($compressor); $this->storeLocal(self::TLS_KEY_PROMISE, $promise); } public function onRun() : void{ $compressor = $this->compressor->deserialize(); $this->setResult(chr($compressor->getNetworkId()) . $compressor->compress($this->data)); } public function onCompletion() : void{ /** @var CompressBatchPromise $promise */ $promise = $this->fetchLocal(self::TLS_KEY_PROMISE); $promise->resolve($this->getResult()); } }