diff options
| author | seh <henesy.dev@gmail.com> | 2019-03-18 15:42:43 -0500 |
|---|---|---|
| committer | seh <henesy.dev@gmail.com> | 2019-03-18 15:42:43 -0500 |
| commit | 577f8a21ded3a49c799ee49b90508801f1361842 (patch) | |
| tree | 6a6023343ba7fd3653e5a574dafe904606eb85ac /Spawn/spawn.b | |
| parent | 5bd50f13c315024164a221eb5a86edabf412b4d1 (diff) | |
add spawn and channels examples
Diffstat (limited to 'Spawn/spawn.b')
| -rw-r--r-- | Spawn/spawn.b | 43 |
1 files changed, 43 insertions, 0 deletions
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; +} |
