summaryrefslogtreecommitdiff
path: root/src/mongo/logger
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2015-04-10 13:04:42 -0400
committerGeert Bosch <geert@mongodb.com>2015-04-10 15:09:43 -0400
commit174b36483d16bb2bdf2329ed5372710390ac7719 (patch)
tree7f16622205bce96fecdca849663120bb78cd60c1 /src/mongo/logger
parent54b410fdceb61c7ce450c190c578f1b992b81e99 (diff)
downloadmongo-174b36483d16bb2bdf2329ed5372710390ac7719.tar.gz
SERVER-15901: Correctly finalize the ThreadOstreamCache in unittests
Diffstat (limited to 'src/mongo/logger')
-rw-r--r--src/mongo/logger/logstream_builder.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/logger/logstream_builder.cpp b/src/mongo/logger/logstream_builder.cpp
index 348d6acbcba..cc3135ec59b 100644
--- a/src/mongo/logger/logstream_builder.cpp
+++ b/src/mongo/logger/logstream_builder.cpp
@@ -62,6 +62,17 @@ namespace {
TSP_DECLARE(OwnedOstreamVector, threadOstreamCache);
TSP_DEFINE(OwnedOstreamVector, threadOstreamCache);
+namespace {
+ // During unittests, where we don't use quickExit(), static finalization may destroy the
+ // cache before its last use, so mark it as not initialized in that case.
+ // This must be after the TSP_DEFINE so that it is destroyed first.
+ struct ThreadOstreamCacheFinalizer {
+ ~ThreadOstreamCacheFinalizer() {
+ isThreadOstreamCacheInitialized = false;
+ }
+ } threadOstreamCacheFinalizer;
+} // namespace
+
namespace logger {
LogstreamBuilder::LogstreamBuilder(MessageLogDomain* domain,