diff options
author | Mathias Stearn <mathias@10gen.com> | 2018-09-04 18:01:14 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2018-09-13 12:36:12 -0400 |
commit | 63868859a3213eae8e749c1f361eaac813083f59 (patch) | |
tree | 6d3ba8957515d23fc49bd2e45d180741dc69118d /src/mongo/client/connection_pool.cpp | |
parent | f4d62c2ba9a27dc03663779d0817bc399ab2e91f (diff) | |
download | mongo-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.cpp | 6 |
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(); } } |