sim: Decouple draining from the SimObject hierarchy
[gem5.git] / src / sim / cxx_manager.cc
index 6d4565dbcedd19b1b80596bc3eb3df3f047a8263..e0b209aa43cb090cab6064f0ed14bc1f1da128fa 100644 (file)
@@ -644,20 +644,15 @@ CxxConfigManager::startup()
 }
 
 unsigned int
-CxxConfigManager::drain(DrainManager *drain_manager)
+CxxConfigManager::drain()
 {
-    unsigned int ret = 0;
-
-    for (auto i = objectsInOrder.begin(); i != objectsInOrder.end(); ++ i)
-        ret += (*i)->drain(drain_manager);
-
-    return ret;
+    return DrainManager::instance().tryDrain() ? 0 : 1;
 }
 
 void
 CxxConfigManager::drainResume()
 {
-    forEachObject(&SimObject::drainResume);
+    DrainManager::instance().resume();
 }
 
 void