summaryrefslogtreecommitdiff
path: root/src/mongo/executor
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2017-01-13 16:16:21 -0500
committerMathias Stearn <mathias@10gen.com>2017-03-24 16:13:26 -0400
commit63d1f4c049587e7923a1154fc31f29bc190316df (patch)
tree35f2b6172f26a003d896d8241ca9800d8a3a71d8 /src/mongo/executor
parent27ddad2221974798284ef62d3328a3c02a510220 (diff)
downloadmongo-63d1f4c049587e7923a1154fc31f29bc190316df.tar.gz
SERVER-27727 Hide idle threads in hang analyzer (extras)
Diffstat (limited to 'src/mongo/executor')
-rw-r--r--src/mongo/executor/network_interface_asio.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mongo/executor/network_interface_asio.cpp b/src/mongo/executor/network_interface_asio.cpp
index 4a38893d1c2..3fbca90cd2c 100644
--- a/src/mongo/executor/network_interface_asio.cpp
+++ b/src/mongo/executor/network_interface_asio.cpp
@@ -46,6 +46,7 @@
#include "mongo/rpc/metadata/metadata_hook.h"
#include "mongo/stdx/chrono.h"
#include "mongo/stdx/memory.h"
+#include "mongo/util/concurrency/idle_thread_block.h"
#include "mongo/util/concurrency/thread_name.h"
#include "mongo/util/log.h"
#include "mongo/util/net/sock.h"
@@ -185,6 +186,7 @@ void NetworkInterfaceASIO::waitForWork() {
stdx::unique_lock<stdx::mutex> lk(_executorMutex);
// TODO: This can be restructured with a lambda.
while (!_isExecutorRunnable) {
+ IdleThreadBlock markIdle;
_isExecutorRunnableCondition.wait(lk);
}
_isExecutorRunnable = false;
@@ -198,6 +200,7 @@ void NetworkInterfaceASIO::waitForWorkUntil(Date_t when) {
if (waitTime <= Milliseconds(0)) {
break;
}
+ IdleThreadBlock markIdle;
_isExecutorRunnableCondition.wait_for(lk, waitTime.toSystemDuration());
}
_isExecutorRunnable = false;