<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>I don't know what the waker function would be, but the event loop IPython uses is tornado,</div><div>So that's what twisted needs to work with.</div><div><br>-MinRK</div><div><br>On Mar 1, 2013, at 8:37, tcb &lt;<a href="mailto:thecolourblue+m@gmail.com">thecolourblue+m@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div>Hi,<div><br></div><div>I am trying to use the ipython notebook with some example code which sets up a websocket server (using autobahn python <a href="http://autobahn.ws/python/tutorials/echo">http://autobahn.ws/python/tutorials/echo</a> ).</div>
<div><br></div><div>The problem is that I need to call twisted's reactor.run() method, but this blocks all input, and I need to interact with the objects to send/receive messages. I haven't been able to get this to work in the notebook yet. I assume its a problem interacting with the tornado eventloop in ipython- but it could be something else (the examples work fine outside of ipython).</div>
<div><br></div><div>Rather than calling reactor.run()- I've tried putting it into a thread:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>threading.Thread(target=reactor.run, kwargs={'installSignalHandlers':False}).start()</div>
</blockquote><div><br></div><div>but that doesn't work either- it doesn't ever run.</div><div><br></div><div>The threadedselector doesn't seem to run either (putting this at the top of my script):</div><div><br>
</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>from twisted.internet import _threadedselect</div></div><div><div>reactor = _threadedselect.install()</div></div></blockquote><div><br></div><div>
There is a possibility to interleave the twisted eventloop with other event loops:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><pre><div class="line" id="LC30"><span class="sd"><font face="arial, helvetica, sans-serif">from twisted.internet import reactor</font></span></div>
</pre></div><div><pre><div class="line" id="LC31"><span class="sd"><font face="arial, helvetica, sans-serif">reactor.interleave(foreignEventLoopWakerFunction)</font></span></div></pre></div></blockquote><div><br></div><div>
but I have no idea which ipython function would serve as a 'waker' function.</div><div><br></div><div>Has anyone managed to do this already in the notebook?</div><div><br></div><div>-thanks</div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>IPython-dev mailing list</span><br><span><a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a></span><br><span><a href="http://mail.scipy.org/mailman/listinfo/ipython-dev">http://mail.scipy.org/mailman/listinfo/ipython-dev</a></span><br></div></blockquote></body></html>