From a07f232ff52244a70244afe0b0ba00f77fe044ae Mon Sep 17 00:00:00 2001 From: Kaloian Manassiev Date: Wed, 3 Dec 2014 10:17:12 -0500 Subject: SERVER-14062 Remove the global OperationContext registry --- src/mongo/db/client.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/mongo/db/client.cpp') diff --git a/src/mongo/db/client.cpp b/src/mongo/db/client.cpp index 21e25cd2266..63cb26cb6eb 100644 --- a/src/mongo/db/client.cpp +++ b/src/mongo/db/client.cpp @@ -113,6 +113,7 @@ namespace mongo { _threadId(boost::this_thread::get_id()), _connectionId(p ? p->connectionId() : 0), _god(0), + _txn(NULL), _lastOp(0), _shutdown(false) { @@ -329,8 +330,14 @@ namespace mongo { if (_connectionId) { builder.appendNumber("connectionId", _connectionId); } + } + + void Client::setOperationContext(OperationContext* txn) { + // We can only set or unset the OperationContexts, never swap them. + invariant((txn == NULL) ^ (_txn == NULL)); - _curOp->reportState(&builder); + boost::unique_lock uniqueLock(_lock); + _txn = txn; } string Client::clientAddress(bool includePort) const { -- cgit v1.2.1