Hi Marijn,<div><br></div><div>The value-now/sync procedure waits for propagation to complete before reading a signal&#39;s value.  Would something like the following suit your purposes?</div><div><br></div><div>(define a (event-receiver))</div>

<div><div>(define b (event-receiver))</div><div>(define a+b (+ (hold a) (hold b)))</div><div>(send-event a 3)</div><div>(send-event b 5)</div><div>(value-now/sync a+b)  ; read a+b after propagation =&gt; 8</div><div><br>
</div>
<div>Or, even simpler:</div><div><br></div><div>(define c (new-cell))</div><div>(define d (new-cell))</div><div>(define c+d (+ c d))</div><div>(set-cell! c 3)</div><div>(set-cell! d 5)</div><div>(value-now/sync c+d)</div>

<div><br></div><div>Greg</div><div><br></div><div class="gmail_quote">On Thu, Jan 12, 2012 at 12:49 AM, Marijn <span dir="ltr">&lt;<a href="mailto:hkBst@gentoo.org">hkBst@gentoo.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
</div><div class="im">On 11-01-12 21:26, Gregory Cooper wrote:<br>
&gt; Hi Marijn,<br>
&gt;<br>
&gt; FrTime propagates changes asynchronously.  When send-event returns,<br>
&gt; there&#39;s no guarantee that the event has finished propagating<br>
&gt; through the system. And in general, (value-now b) is not<br>
&gt; well-defined, since asynchronous processing makes it difficult to<br>
&gt; define what &quot;now&quot; means; programs should only call this if they can<br>
&gt; tolerate stale values.<br>
<br>
</div>Hi Gregory, so just to make sure I understand the implications of<br>
this: there is no way to do something like the following:<br>
<div class="im"><br>
<br>
#lang racket<br>
<br>
(require frtime)<br>
<br>
(define a (event-receiver))<br>
</div>(define b (event-receiver))<br>
<br>
(define a+b (... ??? (merge-e a b)))<br>
<br>
(send-event a 3)<br>
(send-event b 5)<br>
<br>
(... ??? make sure everything is consistent again)<br>
<br>
(... ??? get the value 8 out of a+b)<br>
<div class="im"><br>
<br>
Marijn<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v2.0.18 (GNU/Linux)<br>
Comment: Using GnuPG with Mozilla - <a href="http://enigmail.mozdev.org/" target="_blank">http://enigmail.mozdev.org/</a><br>
<br>
</div>iEYEARECAAYFAk8OnpkACgkQp/VmCx0OL2z8tACffv+uhmEAttZ7YhZ4UStbQR6p<br>
bFIAn3KOoI5uxWU+5hbWHxxJLgih8l7M<br>
=0Y03<br>
-----END PGP SIGNATURE-----<br>
</blockquote></div><br></div>