diff options
author | Geert Bosch <geert@mongodb.com> | 2015-04-10 13:04:42 -0400 |
---|---|---|
committer | Geert Bosch <geert@mongodb.com> | 2015-04-10 15:09:43 -0400 |
commit | 174b36483d16bb2bdf2329ed5372710390ac7719 (patch) | |
tree | 7f16622205bce96fecdca849663120bb78cd60c1 /src/mongo/logger | |
parent | 54b410fdceb61c7ce450c190c578f1b992b81e99 (diff) | |
download | mongo-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.cpp | 11 |
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, |