view tests/channel.ur @ 1451:b6ce8ef0ea88

Before allowing an indirect return, check (dynamically, for now) that we aren't in an RPC handler
author Adam Chlipala <adam@chlipala.net>
date Sun, 17 Apr 2011 13:43:00 -0400
parents f73913d97a40
children
line wrap: on
line source
fun main () : transaction page =
    ch <- channel;
    let
        fun make () =
            subscribe ch;
            send ch "Hello world!"

        fun echo () =
            msg <- recv ch;
            alert(msg);
            echo ()

        fun onload () =
            make ();
            echo ()

        fun haveAnother () =
            send ch "Here's another."
    in
        return <xml><body onload={onload ()}>
          <button value="Another?" onclick={haveAnother ()}/>
        </body></xml>
    end