From 25aa655e5b9464e291d542081ed1cf0f8fd666af Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 14:33:28 +0330 Subject: hold: fixtures (accept, reject, race, rank order) and tests/drivers/hold_test.py --- tests/hold/accept/isolated_globals.zc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tests/hold/accept/isolated_globals.zc (limited to 'tests/hold/accept/isolated_globals.zc') diff --git a/tests/hold/accept/isolated_globals.zc b/tests/hold/accept/isolated_globals.zc new file mode 100644 index 0000000..08a3e5c --- /dev/null +++ b/tests/hold/accept/isolated_globals.zc @@ -0,0 +1,18 @@ +// expect: 0 3 +// a plain global is each actor's own; only a shared variable of a hold block is seen by all +namespace; +include rt, actor; +typecheck on; +let plain = 0; +hold { shared let seen = 0; fn note() { seen++; return seen; } fn seen_now() { return seen; } } +int work(int n) { plain = plain + n; note(); return plain; } +fn main() { + actor.Actor* a = rt.new(actor.Actor), b = rt.new(actor.Actor), c = rt.new(actor.Actor); + a.spawn(work); b.spawn(work); c.spawn(work); + a.send(5); b.send(6); c.send(7); + a.recv(fn(int n) { return 0; }); b.recv(fn(int n) { return 0; }); c.recv(fn(int n) { return 0; }); + a.await(); b.await(); c.await(); + rt.put_n(plain); rt.put_c(' '); rt.put_n(seen_now()); rt.put_c(10); + a.close(); b.close(); c.close(); + return 0; +} -- cgit v1.2.3