aboutsummaryrefslogtreecommitdiff
path: root/tests/actor/accept/declaration.zc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/actor/accept/declaration.zc')
-rw-r--r--tests/actor/accept/declaration.zc11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/actor/accept/declaration.zc b/tests/actor/accept/declaration.zc
new file mode 100644
index 0000000..099c0eb
--- /dev/null
+++ b/tests/actor/accept/declaration.zc
@@ -0,0 +1,11 @@
+namespace;
+include rt, actor;
+typecheck on;
+actor Counter { int total; int handle(int value) { this.total += value; return this.total; } }
+fn main() {
+ Counter* a = rt.new(Counter), b = rt.new(Counter); let left = 0, right = 0;
+ a.spawn(); b.spawn(); a.recv(fn(int n) { left = n; return 0; }); b.recv(fn(int n) { right = n; return 0; });
+ a.send(2); a.send(3); b.send(7); a.await(); b.await();
+ rt.put_n(left); rt.put_c(' '); rt.put_n(right); rt.put_c(' '); rt.put_n(a.total); rt.put_c(' '); rt.put_n(b.total); rt.put_c(10);
+ a.close(); b.close(); return 0;
+}