about summary refs log tree commit diff stats
path: root/channel.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-03-14 18:24:33 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-03-14 18:24:33 -0700
commit637cc4139be5849ce7a12b75153667d54313627e (patch)
treea0b1a71e9a9f42d7a7776d9161f05d904da7f022 /channel.mu
parent540c290de5d2cd940a799a35a2f78e10958fb36e (diff)
downloadmu-637cc4139be5849ce7a12b75153667d54313627e.tar.gz
2784 - make channels generic
I've ignored Mu's concurrency primitives for a while, but they're
starting to return to front-and-center as I work on the file system
interfaces.
Diffstat (limited to 'channel.mu')
-rw-r--r--channel.mu10
1 files changed, 5 insertions, 5 deletions
diff --git a/channel.mu b/channel.mu
index 6e948da0..1dbae8e0 100644
--- a/channel.mu
+++ b/channel.mu
@@ -1,6 +1,6 @@
 # example program: communicating between routines using channels
 
-def producer chan:address:shared:channel -> chan:address:shared:channel [
+def producer chan:address:shared:channel:character -> chan:address:shared:channel:character [
   # produce characters 1 to 5 on a channel
   local-scope
   load-ingredients
@@ -12,19 +12,19 @@ def producer chan:address:shared:channel -> chan:address:shared:channel [
     # other threads might get between these prints
     $print [produce: ], n, [ 
 ]
-    chan:address:shared:channel <- write chan, n
+    chan <- write chan, n
     n <- add n, 1
     loop
   }
 ]
 
-def consumer chan:address:shared:channel -> chan:address:shared:channel [
+def consumer chan:address:shared:channel:character -> chan:address:shared:channel:character [
   # consume and print integers from a channel
   local-scope
   load-ingredients
   {
     # read an integer from the channel
-    n:character, chan:address:shared:channel <- read chan
+    n:character, chan <- read chan
     # other threads might get between these prints
     $print [consume: ], n:character, [ 
 ]
@@ -34,7 +34,7 @@ def consumer chan:address:shared:channel -> chan:address:shared:channel [
 
 def main [
   local-scope
-  chan:address:shared:channel <- new-channel 3
+  chan:address:shared:channel:character <- new-channel 3
   # create two background 'routines' that communicate by a channel
   routine1:number <- start-running producer, chan
   routine2:number <- start-running consumer, chan