From 930e47f1864d0319b7d9033ad2c2bf99f02014c1 Mon Sep 17 00:00:00 2001 From: Mathias Stearn Date: Thu, 14 Jan 2016 15:41:25 -0500 Subject: SERVER-22191 Don't register CurOp on Client until done with construction --- src/mongo/db/curop.cpp | 7 +++++-- 1 file 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() { -- cgit v1.2.1