summaryrefslogtreecommitdiff
path: root/src/mongo/db/client.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2014-12-03 10:17:12 -0500
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2014-12-03 19:48:31 -0500
commita07f232ff52244a70244afe0b0ba00f77fe044ae (patch)
treec94f287284037793b8beafe9782014590a1f51b0 /src/mongo/db/client.cpp
parent3b1d97d430a229bf57c46bc7bc4977801b5bb553 (diff)
downloadmongo-a07f232ff52244a70244afe0b0ba00f77fe044ae.tar.gz
SERVER-14062 Remove the global OperationContext registry
Diffstat (limited to 'src/mongo/db/client.cpp')
-rw-r--r--src/mongo/db/client.cpp9
1 files changed, 8 insertions, 1 deletions
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<SpinLock> uniqueLock(_lock);
+ _txn = txn;
}
string Client::clientAddress(bool includePort) const {