diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2020-05-22 15:45:21 +0300 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2020-05-22 15:45:21 +0300 |
commit | 90eb027204f5a9d7c00fa97d4112243bd37a9012 (patch) | |
tree | 48f59f69118a294203762b72481d6c61e3d6c25f /src | |
parent | 26c093a9957756f3743c2347fe0abd90f81159c4 (diff) |
doc: Add and fix comments about never destroyed objects
Diffstat (limited to 'src')
-rw-r--r-- | src/logging.cpp | 4 | ||||
-rw-r--r-- | src/sync.cpp | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/logging.cpp b/src/logging.cpp index eb9da06d9b..56c44ae1ea 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -22,8 +22,8 @@ BCLog::Logger& LogInstance() * access the logger. When the shutdown sequence is fully audited and tested, * explicit destruction of these objects can be implemented by changing this * from a raw pointer to a std::unique_ptr. - * Since the destructor is never called, the logger and all its members must - * have a trivial destructor. + * Since the ~Logger() destructor is never called, the Logger class and all + * its subclasses must have implicitly-defined destructors. * * This method of initialization was originally introduced in * ee3374234c60aba2cc4c5cd5cac1c0aefc2d817c. diff --git a/src/sync.cpp b/src/sync.cpp index 9b0878bbea..c3312b5a00 100644 --- a/src/sync.cpp +++ b/src/sync.cpp @@ -95,6 +95,8 @@ struct LockData { LockData& GetLockData() { // This approach guarantees that the object is not destroyed until after its last use. // The operating system automatically reclaims all the memory in a program's heap when that program exits. + // Since the ~LockData() destructor is never called, the LockData class and all + // its subclasses must have implicitly-defined destructors. static LockData& lock_data = *new LockData(); return lock_data; } |