annotate tests/rpcO.ur @ 2297:6d56080f495c

Fix a read-after-free bug using a timestamp check
author Adam Chlipala <adam@chlipala.net>
date Thu, 19 Nov 2015 13:18:58 -0500
parents b98f547a6a45
children
rev   line source
adamc@641 1 table t : {A : int}
adamc@641 2
adamc@641 3 fun main () : transaction page =
adamc@641 4 let
adamc@641 5 fun check () =
adamc@641 6 r <- oneRow (SELECT SUM(t.A) AS X FROM t);
adamc@641 7 return (if r.X < 0 then
adamc@641 8 (Some 3, None)
adamc@641 9 else
adamc@641 10 (None, Some "Hi"))
adamc@641 11
adamc@641 12 fun show (t ::: Type) (_ : show t) (opt : option t) =
adamc@641 13 case opt of
adamc@641 14 None => <xml>None</xml>
adamc@641 15 | Some v => <xml>{[v]}</xml>
adamc@641 16 in
adamc@641 17 s <- source (None, None);
adamc@641 18 return <xml><body>
adamc@641 19 <button value="Get It On!"
adamc@641 20 onclick={r <- check ();
adamc@641 21 set s r}/><br/>
adamc@641 22 <br/>
adamc@641 23 Current: <dyn signal={p <- signal s; return <xml>{show p.1}, {show p.2}</xml>}/>
adamc@641 24 </body></xml>
adamc@641 25 end