From 577f8a21ded3a49c799ee49b90508801f1361842 Mon Sep 17 00:00:00 2001 From: seh Date: Mon, 18 Mar 2019 15:42:43 -0500 Subject: add spawn and channels examples --- Spawn/spawn.b | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Spawn/spawn.b (limited to 'Spawn/spawn.b') diff --git a/Spawn/spawn.b b/Spawn/spawn.b new file mode 100644 index 0000000..b375f6c --- /dev/null +++ b/Spawn/spawn.b @@ -0,0 +1,43 @@ +implement Spawn; + +include "sys.m"; +include "draw.m"; + +sys: Sys; +print: import sys; + +Spawn: module { + init: fn(nil: ref Draw->Context, nil: list of string); +}; + +summer(n: int) { + sum := 0; + + for(i := 0; i <= n; i++) { + sum += i; + print("Sum (%d): %d\n", n, sum); + } + + print("Final sum (%d): %d\n", n, sum); +} + +quacker() { + print("quack!\n"); +} + +init(nil: ref Draw->Context, nil: list of string) { + sys = load Sys Sys->PATH; + + spawn quacker(); + + spawn summer(2); + + spawn quacker(); + + n := 3; + spawn summer(n); + + sys->sleep(10); + + exit; +} -- cgit v1.2.3