diff options
author | Mathias Stearn <redbeard0531@gmail.com> | 2016-01-14 15:41:25 -0500 |
---|---|---|
committer | Mathias Stearn <redbeard0531@gmail.com> | 2016-01-18 13:33:40 -0500 |
commit | 930e47f1864d0319b7d9033ad2c2bf99f02014c1 (patch) | |
tree | 6c5639ed23132b62c5ff563a03032a8d53c83746 | |
parent | ed3471a81dec950f863ca6f9c73ea5e90f866875 (diff) | |
download | mongo-930e47f1864d0319b7d9033ad2c2bf99f02014c1.tar.gz |
SERVER-22191 Don't register CurOp on Client until done with construction
-rw-r--r-- | src/mongo/db/curop.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mongo/db/curop.cpp b/src/mongo/db/curop.cpp index 4305987f7b1..5b1b2bdad75 100644 --- a/src/mongo/db/curop.cpp +++ b/src/mongo/db/curop.cpp @@ -61,14 +61,17 @@ MONGO_FP_DECLARE(maxTimeNeverTimeOut); // todo : move more here CurOp::CurOp(Client* client, CurOp* wrapped) : _client(client), _wrapped(wrapped) { - if (_wrapped) - _client->_curOp = this; _start = 0; _active = false; _reset(); _op = 0; _opNum = _nextOpNum.fetchAndAdd(1); _command = NULL; + + if (_wrapped) { + boost::mutex::scoped_lock clientLock(Client::clientsMutex); + _client->_curOp = this; + } } void CurOp::_reset() { |