diff options
Diffstat (limited to 'src/mongo/db/client.cpp')
-rw-r--r-- | src/mongo/db/client.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mongo/db/client.cpp b/src/mongo/db/client.cpp index 3956ae00480..e9a3ff04396 100644 --- a/src/mongo/db/client.cpp +++ b/src/mongo/db/client.cpp @@ -170,13 +170,19 @@ namespace mongo { if ( ! _shutdown ) clients.erase(this); } - delete _curOp; + + CurOp* last; + do { + last = _curOp; + delete _curOp; + // _curOp may have been reset to _curOp->_wrapped + } while (_curOp != last); } } bool Client::shutdown() { #if defined(_DEBUG) - { + { if( sizeof(void*) == 8 ) { StackChecker::check( desc().c_str() ); } |