adamc@698: table channels : { Client : client, Channel : channel (string * int * float) } adamc@708: PRIMARY KEY Client adamc@698: adamc@698: fun writeBack v = adamc@698: me <- self; adamc@698: r <- oneRow (SELECT channels.Channel FROM channels WHERE channels.Client = {[me]}); adamc@698: send r.Channels.Channel v adamc@698: adamc@733: fun action () = adamc@698: me <- self; adamc@698: ch <- channel; adamc@698: dml (INSERT INTO channels (Client, Channel) VALUES ({[me]}, {[ch]})); adamc@698: adamc@698: buf <- Buffer.create; adamc@698: adamc@698: let adamc@698: fun receiver () = adamc@698: v <- recv ch; adamc@698: Buffer.write buf ("(" ^ v.1 ^ ", " ^ show v.2 ^ ", " ^ show v.3 ^ ")"); adamc@698: receiver () adamc@698: adamc@698: fun sender s n f = adamc@698: sleep 2000; adamc@908: rpc (writeBack (s, n, f)); adamc@698: sender (s ^ "!") (n + 1) (f + 1.23) adamc@698: in adamc@698: return adamc@698: adamc@698: adamc@698: end adamc@733: adamc@733: fun main () = return adamc@733:
adamc@733: