diff options
Diffstat (limited to 'tests/actor/accept/values.zc')
| -rw-r--r-- | tests/actor/accept/values.zc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/actor/accept/values.zc b/tests/actor/accept/values.zc new file mode 100644 index 0000000..2f6c103 --- /dev/null +++ b/tests/actor/accept/values.zc @@ -0,0 +1,12 @@ +namespace; +include rt, actor; +typecheck on; +struct Payload { i16 small; u32 large; float fraction; bstr text; } +float handle(Payload* p) { return p.small + p.large + p.fraction + rt.len_s(p.text); } +fn main() { + actor.Actor<Payload*,float>* a = rt.new(actor.Actor<Payload*,float>); + a.spawn(handle); let answer = 0; + a.recv(fn(float n) { answer = n == 6.5; return 0; }); + Payload p; p.small = -2; p.large = 4; p.fraction = 1.5; p.text = b"abc"; + a.send(&p); a.await(); rt.put_n(answer); rt.put_c(10); a.close(); return 0; +} |
