This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mdehoon
Recipients
Date 2005-04-26.10:50:29
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
In the main function in run.py in Lib/idlelib, we have

try:
    seq, request = rpc.request_queue.get(0)
except Queue.Empty:
    time.sleep(0.05)
    continue

The get method of rpc.request_queue already has the
option of a timeout, so we can use that instead of
inlining time.sleep:

try:
    seq, request = rpc.request_queue.get(block=True, 
                                                      
     timeout=0.05)
except Queue.Empty:
    continue

resulting in a (small) simplication of the code. The
patch was tested on Windows, Linux, and Mac OS X.

In case you are wondering why I care about this:
My real interest is in PyOS_InputHook, a pointer to a
function which is called ten times per second when
Python is idle (e.g., waiting for user input).
Currently, calls to PyOS_InputHook are missing in some
cases where Python goes idle. I am going through the
code to fix this. Now, since both the original code in
run.py and rpc.request_queue.get cause Python to go
idle (by calling the sleep function), it means that I
would have to fix both cases. By making use of the
existing code in rpc.request_queue.get, I need to fix
this routine only (which I will do in a later patch),
and avoids having calls to PyOS_InputHook all over the
place.
History
Date User Action Args
2007-08-23 15:42:49adminlinkissue1190163 messages
2007-08-23 15:42:49admincreate