diff options
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp index 173fb05f7b6..64ef2d146ed 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp @@ -247,6 +247,13 @@ void WiredTigerSessionCache::waitUntilDurable(OperationContext* opCtx, // For inMemory storage engines, the data is "as durable as it's going to get". // That is, a restart is equivalent to a complete node failure. if (isEphemeral()) { + // Update the JournalListener before we return. As far as listeners are concerned, all + // writes are as 'durable' as they are ever going to get on an inMemory storage engine. + stdx::unique_lock<Latch> lk(_journalListenerMutex, stdx::defer_lock); + if (useListener == UseJournalListener::kUpdate) { + auto token = _journalListener->getToken(opCtx, lk); + _journalListener->onDurable(token); + } return; } |