From 0a22db3965d8b2b979e4b27bf2c80de3e6ced08f Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Fri, 14 Feb 2014 15:07:30 -0500 Subject: [PATCH] Ignore exceptions during __del__ handlers, which may get called during shutdown --- nilmdb/utils/mustclose.py | 11 +++++++---- nilmdb/utils/serializer.py | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nilmdb/utils/mustclose.py b/nilmdb/utils/mustclose.py index 468ace2..00577ef 100644 --- a/nilmdb/utils/mustclose.py +++ b/nilmdb/utils/mustclose.py @@ -28,10 +28,13 @@ def must_close(errorfile = sys.stderr, wrap_verify = False): @wrap_class_method def __del__(orig, self, *args, **kwargs): - if "_must_close" in self.__dict__: - fprintf(errorfile, "error: %s.close() wasn't called!\n", - self.__class__.__name__) - return orig(self, *args, **kwargs) + try: + if "_must_close" in self.__dict__: + fprintf(errorfile, "error: %s.close() wasn't called!\n", + self.__class__.__name__) + return orig(self, *args, **kwargs) + except: # pragma: no cover + pass @wrap_class_method def close(orig, self, *args, **kwargs): diff --git a/nilmdb/utils/serializer.py b/nilmdb/utils/serializer.py index 4ffa3c4..1dff4a0 100644 --- a/nilmdb/utils/serializer.py +++ b/nilmdb/utils/serializer.py @@ -120,7 +120,7 @@ def serializer_proxy(obj_or_type): try: self.__call_queue.put((None, None, None, None)) self.__thread.join() - except TypeError: # pragma: no cover + except: # pragma: no cover pass return SerializerObjectProxy(obj_or_type)