<?php
$running = true;
$exitSig = 0;

function signal($sig) {
	global $running, $exitSig;
	echo 'init sig = ', $sig, PHP_EOL;
	$running = false;
	$exitSig = $sig;
}

pcntl_async_signals(true);
pcntl_signal(SIGTERM, 'signal', false);
pcntl_signal(SIGINT, 'signal', false);
pcntl_signal(SIGUSR1, 'signal', false);
pcntl_signal(SIGUSR2, 'signal', false);

$var = ts_var_declare(null);

$memsize = memory_get_usage();

if(!is_main_task()) {
	while($running) {
		ts_var_shift($var, $key);
		echo "$key\n";
	};
} else {
	create_task('pop', __FILE__, []) or die('create_task failure');

	while($running) {
		ts_var_count($var) > 5 or ts_var_push($var, __FILE__);
	};

	task_wait($exitSig);
}

$memsize = memory_get_usage() - $memsize;

echo "memory: $memsize\n";