def teardown(self): if self.loadingServices is None: logging.error("Tried to tear down an InMemoryCumulusSimulation twice") return self.stopServices() self.workersVdmsAndEventHandlers = None self.clientsAndVdms = None self.loadingServices = None self.listener = None for gate in self.workerTeardownGates + self.clientTeardownGates: if not gate.wait(30): import ufora.util.StackTraceLoop as StackTraceLoop StackTraceLoop.writeStackTraceSummary(sys.stderr) import ufora.native.Tests as TestsNative TestsNative.forceStackdump() raise UserWarning("Failed to tear down a simulation") if not self.useInMemoryCache: shutil.rmtree(self.diskCacheStorageDir)