# HG changeset patch # User Adam Chlipala # Date 1311363603 14400 # Node ID 0337f88f2efc392f13b34a302b7a07b2833be2b1 # Parent 1e04008eaef73dd0b724559bb0eb5e299dea327c Clock diff -r 1e04008eaef7 -r 0337f88f2efc clock.ur --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock.ur Fri Jul 22 15:40:03 2011 -0400 @@ -0,0 +1,22 @@ +(** Reactive view of the current time *) + +type t = { Source : source time, + Period : int } + +fun create ms = + tm <- now; + t <- source tm; + return {Source = t, Period = ms} + +fun start t = + let + fun loop () = + sleep t.Period; + tm <- now; + set t.Source tm; + loop () + in + spawn (loop ()) + end + +fun signal t = Basis.signal t.Source diff -r 1e04008eaef7 -r 0337f88f2efc clock.urs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock.urs Fri Jul 22 15:40:03 2011 -0400 @@ -0,0 +1,11 @@ +(** Reactive view of the current time *) + +type t + +val create : int -> transaction t +(* Specify the clock resolution, in milliseconds. *) + +val start : t -> transaction {} +(* Call this in client-side code (e.g., 'onload' handler) to begin. *) + +val signal : t -> signal time diff -r 1e04008eaef7 -r 0337f88f2efc lib.urp --- a/lib.urp Tue Jun 21 17:32:36 2011 -0430 +++ b/lib.urp Fri Jul 22 15:40:03 2011 -0400 @@ -12,3 +12,4 @@ togglePanel popupNav navigation +clock