Mercurial > urweb
view tests/goodbye.ur @ 1774:27fdd78bd2f5
Avoid redundant rollbacks
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sat, 02 Jun 2012 10:54:49 -0400 |
parents | c05e2e4bdde7 |
children |
line wrap: on
line source
table boo : { Client : client, Channel : channel unit } fun doIt () = me <- self; ch <- channel; dml (INSERT INTO boo (Client, Channel) VALUES ({[me]}, {[ch]})); return <xml><body onload={let fun loop () = v <- recv ch; alert "Someone left"; loop () in loop () end}/></xml> task clientLeaves = fn cl => debug "Client left"; dml (DELETE FROM boo WHERE Client = {[cl]}); queryI (SELECT (boo.Channel) FROM boo) (fn r => send r.1 ()); debug "Done processing" fun main () = return <xml><body> <form> <submit action={doIt}/> </form> </body></xml>