mirror of
https://github.com/python/cpython.git
synced 2026-01-26 17:22:25 +00:00
Merged revisions 85926 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r85926 | antoine.pitrou | 2010-10-29 13:54:38 +0200 (ven., 29 oct. 2010) | 3 lines Actually restore the original asyncore socket map by making a copy of the dict ........
This commit is contained in:
parent
0d75957d91
commit
a71bfc46d0
1 changed files with 6 additions and 3 deletions
|
|
@ -799,11 +799,12 @@ def restore_sys_path(self, saved_path):
|
|||
|
||||
def get_asyncore_socket_map(self):
|
||||
asyncore = sys.modules.get('asyncore')
|
||||
return asyncore and asyncore.socket_map or {}
|
||||
# XXX Making a copy keeps objects alive until __exit__ gets called.
|
||||
return asyncore and asyncore.socket_map.copy() or {}
|
||||
def restore_asyncore_socket_map(self, saved_map):
|
||||
asyncore = sys.modules.get('asyncore')
|
||||
if asyncore is not None:
|
||||
asyncore.socket_map.clear()
|
||||
asyncore.close_all(ignore_all=True)
|
||||
asyncore.socket_map.update(saved_map)
|
||||
|
||||
def resource_info(self):
|
||||
|
|
@ -819,9 +820,11 @@ def __enter__(self):
|
|||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
saved_values = self.saved_values
|
||||
del self.saved_values
|
||||
for name, get, restore in self.resource_info():
|
||||
current = get()
|
||||
original = self.saved_values[name]
|
||||
original = saved_values.pop(name)
|
||||
# Check for changes to the resource's value
|
||||
if current != original:
|
||||
self.changed = True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue