summaryrefslogtreecommitdiff
path: root/Lib/idlelib/rpc.py
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2002-08-25 14:08:07 +0000
committerKurt B. Kaiser <kbk@shore.net>2002-08-25 14:08:07 +0000
commitadc63847e408ac85b82cdb5e3c4a6cf9ce9933aa (patch)
tree994660a54f59e685ffb7d3febac88bd33978d688 /Lib/idlelib/rpc.py
parenta552e3a0c9aaa5f7540262159515c6798e5d8d7e (diff)
downloadcpython-git-adc63847e408ac85b82cdb5e3c4a6cf9ce9933aa.tar.gz
1. Revert subprocess environment clearing, will restart subprocess
instead. 2. Preserve the Idle client's listening socket for reuse with the fresh subprocess. 3. Remove some unused rpc code, comment out additional unused code. Modified Files: ScriptBinding.py rpc.py run.py
Diffstat (limited to 'Lib/idlelib/rpc.py')
-rw-r--r--Lib/idlelib/rpc.py40
1 files changed, 14 insertions, 26 deletions
diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index 922a460c0c..cd11dfa97d 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -49,15 +49,16 @@ def pickle_code(co):
ms = marshal.dumps(co)
return unpickle_code, (ms,)
-def unpickle_function(ms):
- return ms
+# XXX KBK 24Aug02 function pickling capability not used in Idle
+# def unpickle_function(ms):
+# return ms
-def pickle_function(fn):
- assert isinstance(fn, type.FunctionType)
- return `fn`
+# def pickle_function(fn):
+# assert isinstance(fn, type.FunctionType)
+# return `fn`
copy_reg.pickle(types.CodeType, pickle_code, unpickle_code)
-copy_reg.pickle(types.FunctionType, pickle_function, unpickle_function)
+# copy_reg.pickle(types.FunctionType, pickle_function, unpickle_function)
BUFSIZE = 8*1024
@@ -66,8 +67,6 @@ class RPCServer(SocketServer.TCPServer):
def __init__(self, addr, handlerclass=None):
if handlerclass is None:
handlerclass = RPCHandler
-# XXX KBK 25Jun02 Not used in Idlefork.
-# self.objtable = objecttable
SocketServer.TCPServer.__init__(self, addr, handlerclass)
def server_bind(self):
@@ -86,18 +85,6 @@ class RPCServer(SocketServer.TCPServer):
def get_request(self):
"Override TCPServer method, return already connected socket"
return self.socket, self.server_address
-
-
-# XXX The following two methods are not currently used in Idlefork.
-# def register(self, oid, object):
-# self.objtable[oid] = object
-
-# def unregister(self, oid):
-# try:
-# del self.objtable[oid]
-# except KeyError:
-# pass
-
objecttable = {}
@@ -405,16 +392,17 @@ class RPCClient(SocketIO):
nextseq = 1 # Requests coming from the client are odd numbered
def __init__(self, address, family=socket.AF_INET, type=socket.SOCK_STREAM):
- self.sock = socket.socket(family, type)
- self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self.sock.bind(address)
- self.sock.listen(1)
+ self.listening_sock = socket.socket(family, type)
+ self.listening_sock.setsockopt(socket.SOL_SOCKET,
+ socket.SO_REUSEADDR, 1)
+ self.listening_sock.bind(address)
+ self.listening_sock.listen(1)
def accept(self):
- newsock, address = self.sock.accept()
+ working_sock, address = self.listening_sock.accept()
if address[0] == '127.0.0.1':
print>>sys.__stderr__, "Idle accepted connection from ", address
- SocketIO.__init__(self, newsock)
+ SocketIO.__init__(self, working_sock)
else:
print>>sys.__stderr__, "Invalid host: ", address
raise socket.error