diff --git a/qubes/ext/pci.py b/qubes/ext/pci.py index 10f69e5f..cb93b30a 100644 --- a/qubes/ext/pci.py +++ b/qubes/ext/pci.py @@ -313,6 +313,12 @@ class PCIDeviceExtension(qubes.ext.Extension): else: raise + @qubes.ext.handler('qubes-close', system=True) + def on_app_close(self, app, event): + # pylint: disable=unused-argument,no-self-use + _cache_get.cache_clear() + + @functools.lru_cache(maxsize=None) def _cache_get(vm, ident): ''' Caching wrapper around `PCIDevice(vm, ident)`. ''' diff --git a/qubes/tests/__init__.py b/qubes/tests/__init__.py index df041add..06260466 100644 --- a/qubes/tests/__init__.py +++ b/qubes/tests/__init__.py @@ -410,7 +410,6 @@ class QubesTestCase(unittest.TestCase): self.loop = asyncio.get_event_loop() self.addCleanup(self.cleanup_loop) self.addCleanup(self.cleanup_traceback) - self.addCleanup(qubes.ext.pci._cache_get.cache_clear) def cleanup_traceback(self): '''Remove local variables reference from tracebacks to allow garbage