about summary refs log tree commit diff stats
path: root/channel.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-01-05 23:57:19 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-01-05 23:57:19 -0800
commitafadac25a40513f785634e989dff332f5861d65c (patch)
treedfee57c2b942a33a69f32e3556e35ceee0d04d53 /channel.mu
parent08878e3b6a5bf6f5856464ddc865dca59cc19b67 (diff)
downloadmu-afadac25a40513f785634e989dff332f5861d65c.tar.gz
505 - simplify tagged-value
I could swear there was an issue earlier where tagged-values had to
contain pointers for some core function. But I can't find it anymore.
Ok, assume we can store primitives in it and pointers only for
aggregates (and-records and arrays).
Diffstat (limited to 'channel.mu')
-rw-r--r--channel.mu9
1 files changed, 4 insertions, 5 deletions
diff --git a/channel.mu b/channel.mu
index 854ab858..9c5ca0f2 100644
--- a/channel.mu
+++ b/channel.mu
@@ -13,9 +13,8 @@
     (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 <- init-tagged-value integer-address:literal n2:integer-address)
+    (n2:integer <- copy n:integer)
+    (n3:tagged-value-address <- init-tagged-value integer:literal n2:integer)
     (chan:channel-address/deref <- write chan:channel-address n3:tagged-value-address/deref)
     (n:integer <- add n:integer 1:literal)
     (loop)
@@ -30,10 +29,10 @@
     ; read a tagged value from the channel
     (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 <- maybe-coerce x:tagged-value integer:literal)
     ; other threads might get between these prints
     (print-primitive (("consume: " literal)))
-    (print-primitive n2:integer-address/deref)
+    (print-primitive n2:integer)
     (print-primitive (("\n" literal)))
     (loop)
   }