about summary refs log tree commit diff
path: root/src/libutil
diff options
context:
space:
mode:
authorWill Dietz <w@wdtz.org>2018-03-03T20·39-0600
committerWill Dietz <w@wdtz.org>2018-03-06T16·42-0600
commite917c05628abd0ff429c429d0e814532180b9586 (patch)
tree0ef6d5682af7482928a2a22cc4175a35ab6a7138 /src/libutil
parent70dbac7491c372b514b4fd825f99a761803f40f5 (diff)
logging: Don't throw from Activity destructor
Move definition of destructor to logging.cc for
access to util.hh's ignoreException.
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/logging.cc8
-rw-r--r--src/libutil/logging.hh3
2 files changed, 9 insertions, 2 deletions
diff --git a/src/libutil/logging.cc b/src/libutil/logging.cc
index 27a631a37d10..c1cff5cf9061 100644
--- a/src/libutil/logging.cc
+++ b/src/libutil/logging.cc
@@ -221,4 +221,12 @@ bool handleJSONLogMessage(const std::string & msg,
     return true;
 }
 
+Activity::~Activity() {
+    try {
+        logger.stopActivity(id);
+    } catch (...) {
+        ignoreException();
+    }
+}
+
 }
diff --git a/src/libutil/logging.hh b/src/libutil/logging.hh
index 677aa4daec4d..ca768d555add 100644
--- a/src/libutil/logging.hh
+++ b/src/libutil/logging.hh
@@ -94,8 +94,7 @@ struct Activity
 
     Activity(const Activity & act) = delete;
 
-    ~Activity()
-    { logger.stopActivity(id); }
+    ~Activity();
 
     void progress(uint64_t done = 0, uint64_t expected = 0, uint64_t running = 0, uint64_t failed = 0) const
     { result(resProgress, done, expected, running, failed); }