Zuzu

 view release on metacpan or  search on metacpan

stdlib/tests/std/worker/_004-copy-isolation.zzs  view on Meta::CPAN

from test/more import *;
from test/worker_contract import require_worker_phase;

let Worker := require_worker_phase(1);

async function main () {
	let data := [ 1, 2 ];
	let task := Worker.spawn(
		function ( copy ) {
			return [ copy[0], copy.length(), copy.get( 2, "missing" ) ];
		},
		[ data ],
	);

	data[0] := 9;
	data.push(3);

	is(
		await {
			task;
		},
		[ 1, 2, "missing" ],
		"worker receives marshalled copy from spawn time",
	);
}

await {
	main();
};

done_testing();



( run in 1.442 second using v1.01-cache-2.11-cpan-f03e8824b8d )