1. Make the startup more robust by not spawning the subprocess if IDLE
can't acquire the port to listen on.
2. Shorten the retry and simplify the messages.
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index f3312a8..6048503 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -325,22 +325,19 @@
def start_subprocess(self):
addr = ("localhost", self.port)
- self.spawn_subprocess()
# Idle starts listening for connection on localhost
- for i in range(6):
+ for i in range(3):
time.sleep(i)
try:
self.rpcclt = rpc.RPCClient(addr)
break
except socket.error, err:
- if i < 3:
- print>>sys.__stderr__, ". ",
- else:
- print>>sys.__stderr__,"\nIdle socket error: " + err[1]\
+ print>>sys.__stderr__,"Idle socket error: " + err[1]\
+ ", retrying..."
else:
display_port_binding_error()
sys.exit()
+ self.spawn_subprocess()
# Accept the connection from the Python execution server
self.rpcclt.accept()
self.rpcclt.register("stdin", self.tkconsole)