adam@10: (** Reactive view of the current time *) adam@10: adam@10: type t = { Source : source time, adam@10: Period : int } adam@10: adam@10: fun create ms = adam@10: tm <- now; adam@10: t <- source tm; adam@10: return {Source = t, Period = ms} adam@10: adam@10: fun start t = adam@10: let adam@10: fun loop () = adam@10: sleep t.Period; adam@10: tm <- now; adam@10: set t.Source tm; adam@10: loop () adam@10: in adam@10: spawn (loop ()) adam@10: end adam@10: adam@10: fun signal t = Basis.signal t.Source