Use Queue's blocking feature instead of sleeping in the main
loop.  Patch # 1190163 Michiel de Hoon
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 62f4cce..8adb6f1 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -82,9 +82,8 @@
                     # exiting but got an extra KBI? Try again!
                     continue
             try:
-                seq, request = rpc.request_queue.get(0)
+                seq, request = rpc.request_queue.get(block=True, timeout=0.05)
             except Queue.Empty:
-                time.sleep(0.05)
                 continue
             method, args, kwargs = request
             ret = method(*args, **kwargs)