about summary refs log tree commit diff stats
path: root/channel.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-12-14 13:21:32 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-12-14 13:21:59 -0800
commitd4b4d018c76409a96b82bee1e81c735648e57918 (patch)
tree952ce8bce8b74a9a93514e4d210d3fb9f1a3c8a4 /channel.mu
parent6c8f19d2be6eb4cd227c2ba6f3e189b8f3a72608 (diff)
downloadmu-d4b4d018c76409a96b82bee1e81c735648e57918.tar.gz
428 - cleanup odds and ends
Diffstat (limited to 'channel.mu')
-rw-r--r--channel.mu48
1 files changed, 24 insertions, 24 deletions
diff --git a/channel.mu b/channel.mu
index fa6d89c3..0ee53774 100644
--- a/channel.mu
+++ b/channel.mu
@@ -1,48 +1,48 @@
 (function producer [
   ; produce numbers 1 to 5 on a channel
-  ((default-scope scope-address) <- new (scope literal) (30 literal))
-  ((chan channel-address) <- next-input)
+  (default-scope:scope-address <- new scope:literal 30:literal)
+  (chan:channel-address <- next-input)
   ; n = 0
-  ((n integer) <- copy (0 literal))
+  (n:integer <- copy 0:literal)
   { begin
-    ((done? boolean) <- less-than (n integer) (5 literal))
-    (break-unless (done? boolean))
+    (done?:boolean <- less-than n:integer 5:literal)
+    (break-unless done?:boolean)
     ; other threads might get between these prints
-    (print-primitive ("produce: " literal))
-    (print-primitive (n integer))
-    (print-primitive ("\n" literal))
+    (print-primitive (("produce: " literal)))
+    (print-primitive n:integer)
+    (print-primitive (("\n" literal)))
     ; 'box' n into a dynamically typed 'tagged value' because that's what
     ; channels take
-    ((n2 integer-address) <- new (integer literal))
-    ((n2 integer-address deref) <- copy (n integer))
-    ((n3 tagged-value-address) <- new-tagged-value (integer-address literal) (n2 integer-address))
-    ((chan channel-address deref) <- write (chan channel-address) (n3 tagged-value-address deref))
-    ((n integer) <- add (n integer) (1 literal))
+    (n2:integer-address <- new integer:literal)
+    (n2:integer-address/deref <- copy n:integer)
+    (n3:tagged-value-address <- new-tagged-value integer-address:literal n2:integer-address)
+    (chan:channel-address/deref <- write chan:channel-address n3:tagged-value-address/deref)
+    (n:integer <- add n:integer 1:literal)
     (loop)
   }
 ])
 
 (function consumer [
   ; consume and print integers from a channel
-  ((default-scope scope-address) <- new (scope literal) (30 literal))
-  ((chan channel-address) <- next-input)
+  (default-scope:scope-address <- new scope:literal 30:literal)
+  (chan:channel-address <- next-input)
   { begin
     ; read a tagged value from the channel
-    ((x tagged-value) (chan channel-address deref) <- read (chan channel-address))
+    (x:tagged-value chan:channel-address/deref <- read chan:channel-address)
     ; unbox the tagged value into an integer
-    ((n2 integer-address) <- maybe-coerce (x tagged-value) (integer-address literal))
+    (n2:integer-address <- maybe-coerce x:tagged-value integer-address:literal)
     ; other threads might get between these prints
-    (print-primitive ("consume: " literal))
-    (print-primitive (n2 integer-address deref))
-    (print-primitive ("\n" literal))
+    (print-primitive (("consume: " literal)))
+    (print-primitive n2:integer-address/deref)
+    (print-primitive (("\n" literal)))
     (loop)
   }
 ])
 
 (function main [
-  ((chan channel-address) <- new-channel (3 literal))
+  (chan:channel-address <- new-channel 3:literal)
   ; create two background 'routines' that communicate by a channel
-  (fork (consumer fn) (chan channel-address))
-  (fork (producer fn) (chan channel-address))
-  (sleep (2000 literal))  ; wait for forked routines to effect the transfer
+  (fork consumer:fn chan:channel-address)
+  (fork producer:fn chan:channel-address)
+  (sleep 2000:literal)  ; wait for forked routines to effect the transfer
 ])