<div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">The essence of my proposed solution is to execute<br>Twisted and Stackless in separate OS threads and have
<br>them communicate through a queue. In turn, one has a<br>&quot;dispatcher&quot; tasklet that communicates between<br>tasklets that make I/O requests and Twisted. The<br>Stackless thread is started using Twisted&#39;s<br>
callInThread() function. Stackless accesses Twisted<br>calls using callFromThread(). Yes there is overhead to<br>this solution. However I can now use a tasklet to<br>process network I/O instead of an OS thread.</blockquote>

<div>&nbsp;</div>
<div>Twisted and Stackless can be used in the same thread, without callFromThread. Just make the reactor.run method be the root tasklet.</div>
<div>Blocked tasklets can then wait for channels that are filled by deferred callbacks in the same thread.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>-Greg</div>
<div>&nbsp;</div><br>&nbsp;</div>