summaryrefslogtreecommitdiffstats
path: root/storage/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-11 21:20:17 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-11 21:20:17 +0000
commitc5beb20659066d2473d9f42f9b40246857341487 (patch)
tree46592c0b092c9ad7691d03a10ab67b6a258b7611 /storage/src
parent7457dd75a78695f73664f0ef000f9427e911c69e (diff)
If you find nothing to do you must wake up someone with a higher mandate.
Diffstat (limited to 'storage/src')
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp b/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp
index 14074b65c5c..04bc098efcd 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/filestorhandlerimpl.cpp
@@ -1023,7 +1023,14 @@ FileStorHandlerImpl::Stripe::schedule_and_get_next_async_message(MessageEntry en
{
std::unique_lock guard(*_lock);
_queue->emplace_back(std::move(entry));
- return get_next_async_message(guard);
+ auto lockedMessage = get_next_async_message(guard);
+ if ( ! lockedMessage.second) {
+ if (guard.owns_lock()) {
+ guard.unlock();
+ }
+ _cond->notify_all();
+ }
+ return lockedMessage;
}
void