summaryrefslogtreecommitdiff
path: root/src/mongo/client/connection_pool.cpp
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2018-09-04 18:01:14 -0400
committerMathias Stearn <mathias@10gen.com>2018-09-13 12:36:12 -0400
commit63868859a3213eae8e749c1f361eaac813083f59 (patch)
tree6d3ba8957515d23fc49bd2e45d180741dc69118d /src/mongo/client/connection_pool.cpp
parentf4d62c2ba9a27dc03663779d0817bc399ab2e91f (diff)
downloadmongo-63868859a3213eae8e749c1f361eaac813083f59.tar.gz
SERVER-36468 Add a mechanism to allow breaking DBClientConnection out of a blocking operation
Diffstat (limited to 'src/mongo/client/connection_pool.cpp')
-rw-r--r--src/mongo/client/connection_pool.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mongo/client/connection_pool.cpp b/src/mongo/client/connection_pool.cpp
index c02ab68ed5d..703099e746e 100644
--- a/src/mongo/client/connection_pool.cpp
+++ b/src/mongo/client/connection_pool.cpp
@@ -92,20 +92,20 @@ void ConnectionPool::_cleanUpOlderThan_inlock(Date_t now, ConnectionList* hostCo
}
}
-bool ConnectionPool::_shouldKeepConnection(Date_t now, const ConnectionInfo& connInfo) const {
+bool ConnectionPool::_shouldKeepConnection(Date_t now, const ConnectionInfo& connInfo) {
const Date_t expirationDate = connInfo.creationDate + kMaxConnectionAge;
if (expirationDate <= now) {
return false;
}
- return true;
+ return !connInfo.conn->isFailed();
}
void ConnectionPool::closeAllInUseConnections() {
stdx::lock_guard<stdx::mutex> lk(_mutex);
for (ConnectionList::iterator iter = _inUseConnections.begin(); iter != _inUseConnections.end();
++iter) {
- iter->conn->shutdown();
+ iter->conn->shutdownAndDisallowReconnect();
}
}