view tests/goodbye.ur @ 2219:ff38b3e0cdfd

Add interface to UnionFind.
author Ziv Scully <ziv@mit.edu>
date Mon, 24 Nov 2014 20:41:24 -0500
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>