view tests/threads.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 2197f0e24a9f
children
line wrap: on
line source
fun main () =
    buf <- Buffer.create;
    let
        fun loop1 () =
            Buffer.write buf "A";
            sleep 9;
            loop1 ()

        fun loop2 () =
            Buffer.write buf "B";
            sleep 9;
            error <xml>Darn</xml>
            loop2 ()
    in
        return <xml><body onload={spawn (loop1 ()); loop2 ()}>
          <dyn signal={Buffer.render buf}/>
        </body></xml>
    end