aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/actor.zc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/programs/actor.zc')
-rw-r--r--tests/programs/actor.zc12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/programs/actor.zc b/tests/programs/actor.zc
new file mode 100644
index 0000000..5256aca
--- /dev/null
+++ b/tests/programs/actor.zc
@@ -0,0 +1,12 @@
+namespace;
+include rt, actor;
+typecheck on;
+int add_two(int n) { return n + 2; }
+fn main() {
+ actor.Actor<int,int>* a = rt.new(actor.Actor<int,int>);
+ let total = 0;
+ a.spawn(add_two); a.recv(fn(int value) { total += value; return 0; });
+ a.send(2); a.send(3); a.await(); rt.put_n(total); rt.put_c(' ');
+ a.send(1); a.await(); rt.put_n(total); rt.put_c(' ');
+ a.close(); rt.put_n(a.send(4)); rt.put_c(10); return 0;
+}