aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Dietz <w@wdtz.org>2018-03-03 14:39:04 -0600
committerWill Dietz <w@wdtz.org>2018-03-06 10:42:58 -0600
commite917c05628abd0ff429c429d0e814532180b9586 (patch)
tree0ef6d5682af7482928a2a22cc4175a35ab6a7138
parent70dbac7491c372b514b4fd825f99a761803f40f5 (diff)
logging: Don't throw from Activity destructor
Move definition of destructor to logging.cc for access to util.hh's ignoreException.
-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 27a631a37..c1cff5cf9 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 677aa4dae..ca768d555 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); }