From c15e6d8e0a061b82738c4d1d03bae4470d432731 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Wed, 6 Sep 2006 22:37:35 -0700 Subject: Try to make unproxy order more deterministic. --HG-- extra : convert_revision : 0bc543014dced6dfed4122d4c1b8f22e6c8d7a13 --- src/python/m5/SimObject.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/python') diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index 281352e0d..a0d66e643 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -633,13 +633,20 @@ class SimObject(object): raise setattr(self, param, value) - for port_name in self._ports.iterkeys(): + # Unproxy ports in sorted order so that 'append' operations on + # vector ports are done in a deterministic fashion. + port_names = self._ports.keys() + port_names.sort() + for port_name in port_names: port = self._port_refs.get(port_name) if port != None: port.unproxy(self) - for child in self._children.itervalues(): - child.unproxy_all() + # Unproxy children in sorted order for determinism also. + child_names = self._children.keys() + child_names.sort() + for child in child_names: + self._children[child].unproxy_all() def print_ini(self): print '[' + self.path() + ']' # .ini section header -- cgit v1.2.3