<div>Hi Arnar,</div>
<div>&nbsp;</div>
<div>I was being really brain-dead, of course, when I started going on about interrupt coding. You don&#39;t have to do any. C select does all that for you, just as shown in your own code snippet for time.sleep...<br>&nbsp;</div>

<div><span class="gmail_quote">On 10/3/08, <b class="gmail_sendername">Arnar Birgisson</b> &lt;<a href="mailto:arnarbi@gmail.com">arnarbi@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hey Larry,<br><br>On Fri, Oct 3, 2008 at 20:56, Larry Dickson &lt;<a href="mailto:ldickson@cuttedge.com">ldickson@cuttedge.com</a>&gt; wrote:<br>
&gt; Am I right, that your answer to (1) is that Tasklet L is the one with<br>&gt; &quot;event.loop(TRUE)&quot; and that that is the call that continually checks<br>&gt; readiness for other tasklets?<br><br>Yes, that is correct.<br>
<br>&gt; The &quot;elaborate handler when select comes out of the block&quot; is really pretty<br>&gt; trivial, and was done decades ago by Inmos - who recorded a bit-by-bit<br>&gt; description of their absolutely robust implementation. They actually solved<br>
&gt; a tougher problem, which was to let you code a multi-way branch in a single<br>&gt; process (not just select the winning process with one stimulus to each, as<br>&gt; we have been discussing), and included timers too.<br>
&gt;<br>&gt; Your implementation of time.sleep looks like it&#39;s interrupt-based, so I<br>&gt; guess you have a fast clock on your motherboard, unless C select is coded<br>&gt; pretty weirdly.<br><br>Just to be clear, it is not *mine*, it is from the CPython source.</blockquote>

<div>&nbsp;</div>
<div>Ah, the ambiguity of English &quot;you&quot; - I meant &quot;the implementation of&nbsp;you Stackless coders&quot; - then confused it by adding &quot;thou hast a fast clock on thy motherboard&quot; ;-)</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">&gt; This particular kind of interrupts and locking code is not as hard as you<br>&gt; think, because it only has to serialize the queue manipulation for something<br>
&gt; you completely control - the Stackless virtual machine. I did it in DOS ages<br>&gt; ago, and the Inmos documentation exhaustively lists what is needed, which<br>&gt; isn&#39;t much (currently the &quot;Transterpreter&quot; project works off that). It&#39;s<br>
&gt; your call, of course, but I think readiness queueing is much cleaner without<br>&gt; requiring a timer poll loop.<br><br>I&#39;d be interested to see an implementation :)</blockquote>
<div>&nbsp;</div>
<div>I&#39;ll put some notes together over the weekend and send them along - I have to pull it out of non-digital 1988 references.</div>
<div>&nbsp;</div>
<div>Larry</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">cheers,<br>Arnar<br></blockquote></div><br>