Michiel,<br><br>Thanks for the reply, this will help us to find a better approach.  According to one of the wx devs, Robin Dunn, wx currently does not have the ability to monitor stdin in its even loop without polling.  I guess there is a GSoC project to add this capability, but it is not there yet.  Any thoughts on how this could be done without monitoring stdin.  I will give the polling stdin approach a try though.<br>
<br>Cheers,<br><br>Brian<br><br><div class="gmail_quote"><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
The chunkiness probably comes from the fact that inputhook_wx is called repeatedly. This is different from how PyOS_InputHook is being used in Tkinter, PyGTK, and the Mac OS X backend.<br>
<br>
Schematically, this is how the Tkinter/PyGTK/MacOSX event loops work:<br>
<br>
1) PyOS_InputHook is called when Python is waiting for the user to type in the next Python command.<br>
<br>
2) The hook function sets up the event loop such that stdin is being monitored while the event loop is running.<br>
<br>
3) The hook function then starts the event loop.<br>
<br>
4) When input is available on stdin, the hook function exits the event loop, and returns.<br>
<br>
This is how the proposed Wx event loop currently works:<br>
<br>
1) PyOS_InputHook is called when Python is waiting for the user to type in the next Python command.<br>
<br>
2) The hook function processes whatever events are available at the time.<br>
<br>
3) The hook function returns.<br>
<br>
4) If still no input is available on stdin, Python calls the hook function again via PyOS_InputHook after a timeout.<br>
<br>
I believe the timeout is 0.1 seconds by default. However, Python may not call PyOS_InputHook repeatedly at all; this depends on which Python version is being used, and the version of the readline library. In some configurations (particularly on Windows), PyOS_InputHook is called only once, so wx will freeze between Python commands.<br>

<br>
I am not familiar with wx, but there hopefully there is some way to monitor stdin while the event loop is running?<br>
<br>
--Michiel.<br>
<br>
<br>
--- On Thu, 7/16/09, Brian Granger &lt;<a href="http://ellisonbg.net" target="_blank">ellisonbg.net</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt; wrote:<br>
<br>
&gt; From: Brian Granger &lt;<a href="http://ellisonbg.net" target="_blank">ellisonbg.net</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;<br>
&gt; Subject: Re: [matplotlib-devel] [IPython-dev] [Enthought-Dev] Ctypes based prototype of PyOS_InputHook for wx 2.8 and 2.9<br>
&gt; To: &quot;Robert Kern&quot; &lt;<a href="mailto:rkern@enthought.com">rkern@enthought.com</a>&gt;<br>
&gt; Cc: <a href="mailto:enthought-dev@enthought.com">enthought-dev@enthought.com</a>, &quot;matplotlib development list&quot; &lt;<a href="mailto:matplotlib-devel@lists.sourceforge.net">matplotlib-devel@lists.sourceforge.net</a>&gt;, &quot;IPython Development list&quot; &lt;<a href="mailto:ipython-dev@scipy.org">ipython-dev@scipy.org</a>&gt;<br>

&gt; Date: Thursday, July 16, 2009, 6:57 PM<br>
<div><div></div><div class="h5">&gt; Robert,<br>
&gt;<br>
&gt; Thanks for testing this so quickly.  Performance is one of<br>
&gt; the big issues that I am concerned about.  I will work on a<br>
&gt; Cython based version to see if that solves the problem.<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; Brian<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Works for me with wx 2.8.8.1 on OS X 10.5 and<br>
&gt; Chaco. Pan and zoom<br>
&gt;<br>
&gt; interactions are substantially chunky, though. I do not see<br>
&gt; such<br>
&gt;<br>
&gt; chunkiness with -wthread. It would be worth exploring a<br>
&gt; Cython<br>
&gt;<br>
&gt; alternative to see if it is just ctypes and general Python<br>
&gt; overhead to<br>
&gt;<br>
&gt; blame.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Robert Kern<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &quot;I have come to believe that the whole world is an<br>
&gt; enigma, a harmless<br>
&gt;<br>
&gt; enigma that is made terrible by our own mad attempt to<br>
&gt; interpret it as<br>
&gt;<br>
&gt; though it had an underlying truth.&quot;<br>
&gt;<br>
&gt;   -- Umberto Eco<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt;<br>
&gt; IPython-dev mailing list<br>
&gt;<br>
&gt; <a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>
&gt;<br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div>&gt; -----Inline Attachment Follows-----<br>
&gt;<br>
&gt; ------------------------------------------------------------------------------<br>
&gt; Enter the BlackBerry Developer Challenge <br>
&gt; This is your chance to win up to $100,000 in prizes! For a<br>
&gt; limited time,<br>
&gt; vendors submitting new applications to BlackBerry App<br>
&gt; World(TM) will have<br>
&gt; the opportunity to enter the BlackBerry Developer<br>
&gt; Challenge. See full prize <br>
&gt; details at: <a href="http://p.sf.net/sfu/Challenge" target="_blank">http://p.sf.net/sfu/Challenge</a><br>
&gt; -----Inline Attachment Follows-----<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Matplotlib-devel mailing list<br>
&gt; <a href="mailto:Matplotlib-devel@lists.sourceforge.net">Matplotlib-devel@lists.sourceforge.net</a><br>
&gt; <a href="https://lists.sourceforge.net/lists/listinfo/matplotlib-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/matplotlib-devel</a><br>
&gt;<br>
<br>
<br>
<br>
</blockquote></div><br>