Mercurial > urweb
view demo/roundTrip.ur @ 2166:8a01e8f21de9
Make OpenSSL usage thread-safe (closes #206)
Enable OpenSSL?s multithreading support by defining locking and
thread-ID callbacks. Remove a lock obviated by this change.
author | Benjamin Barenblat <bbaren@mit.edu> |
---|---|
date | Thu, 06 Aug 2015 10:15:53 -0400 (2015-08-06) |
parents | ed06e25c70ef |
children |
line wrap: on
line source
table channels : { Client : client, Channel : channel (string * int * float) } PRIMARY KEY Client fun writeBack v = me <- self; r <- oneRow (SELECT channels.Channel FROM channels WHERE channels.Client = {[me]}); send r.Channels.Channel v fun action () = me <- self; ch <- channel; dml (INSERT INTO channels (Client, Channel) VALUES ({[me]}, {[ch]})); buf <- Buffer.create; let fun receiver () = v <- recv ch; Buffer.write buf ("(" ^ v.1 ^ ", " ^ show v.2 ^ ", " ^ show v.3 ^ ")"); receiver () fun sender s n f = sleep 2000; rpc (writeBack (s, n, f)); sender (s ^ "!") (n + 1) (f + 1.23) in return <xml><body onload={spawn (receiver ()); sender "" 0 0.0}> <dyn signal={Buffer.render buf}/> </body></xml> end fun main () = return <xml><body> <form><submit value="Begin demo" action={action}/></form> </body></xml>