| 
<?php
 ini_set('display_errors', 'on');
 ini_set('display_startup_errors', 1);
 ini_set('error_log', 'php-async-errors-' . date('YmdH') . '.log');
 error_reporting(E_ALL);
 
 require_once 'vendor/autoload.php';
 require_once __DIR__ . DIRECTORY_SEPARATOR . 'script_functions.php';
 
 use Laravel\SerializableClosure\SerializableClosure;
 
 if (!isset($argv[1])) {
 error('Shmop Key not provided');
 exit(1);
 }
 
 $key = (int)$argv[1];
 
 $shmopInstance = shmop_open($key, 'a', 0, 0);
 
 if (!$shmopInstance) {
 error('Could not open Shmop');
 exit(1);
 }
 
 $length = shmop_size($shmopInstance);
 
 if ($length === 0) {
 error('Shmop length cannot be zero!');
 exit(1);
 }
 
 $dataCompressed = shmop_read($shmopInstance, 0, $length);
 $data = stringFromMemoryBlock($dataCompressed);
 
 /**
 * @var SerializableClosure $serializedClosure
 * @var callable $closure
 */
 $serializedClosure = unserialize($data);
 $closure = $serializedClosure->getClosure();
 $closure();
 
 exit(0);
 
 |