Skip to content

Commit

Permalink
SERVER-2771 preliminary code cleanup; no functional change
Browse files Browse the repository at this point in the history
  • Loading branch information
milkie committed Oct 10, 2012
1 parent f0a5062 commit 7922e03
Show file tree
Hide file tree
Showing 26 changed files with 394 additions and 293 deletions.
1 change: 1 addition & 0 deletions src/mongo/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ if has_option( "asio" ):

# mongod files - also files used in tools. present in dbtests, but not in mongos and not in client libs.
serverOnlyFiles = [ "db/curop.cpp",
"db/kill_current_op.cpp",
"db/memconcept.cpp",
"db/interrupt_status_mongod.cpp",
"db/d_globals.cpp",
Expand Down
31 changes: 17 additions & 14 deletions src/mongo/db/btree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,24 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "pch.h"
#include "db.h"
#include "btree.h"
#include "index_insertion_continuation.h"
#include "pdfile.h"
#include "json.h"
#include "clientcursor.h"
#include "client.h"
#include "dbhelpers.h"
#include "curop-inl.h"
#include "stats/counters.h"
#include "dur_commitjob.h"
#include "btreebuilder.h"
#include "mongo/pch.h"

#include "mongo/db/btree.h"

#include "mongo/db/btreebuilder.h"
#include "mongo/db/client.h"
#include "mongo/db/clientcursor.h"
#include "mongo/db/curop-inl.h"
#include "mongo/db/db.h"
#include "mongo/db/dbhelpers.h"
#include "mongo/db/dur_commitjob.h"
#include "mongo/db/index_insertion_continuation.h"
#include "mongo/db/json.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/pdfile.h"
#include "mongo/db/stats/counters.h"
#include "mongo/server.h"
#include "mongo/util/startup_test.h"
#include "../server.h"

namespace mongo {

Expand Down
14 changes: 8 additions & 6 deletions src/mongo/db/btreecursor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "pch.h"
#include "btree.h"
#include "pdfile.h"
#include "jsobj.h"
#include "curop-inl.h"
#include "queryutil.h"
#include "mongo/pch.h"

#include "mongo/db/btree.h"
#include "mongo/db/curop-inl.h"
#include "mongo/db/jsobj.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/pdfile.h"
#include "mongo/db/queryutil.h"

namespace mongo {

Expand Down
72 changes: 19 additions & 53 deletions src/mongo/db/client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,25 @@
to an open socket (or logical connection if pooling on sockets) from a client.
*/

#include "pch.h"
#include "db.h"
#include "client.h"
#include "curop-inl.h"
#include "json.h"
#include "security.h"
#include "commands.h"
#include "instance.h"
#include "../s/d_logic.h"
#include "dbwebserver.h"
#include "../util/mongoutils/html.h"
#include "../util/mongoutils/checksum.h"
#include "../util/file_allocator.h"
#include "repl/rs.h"
#include "../scripting/engine.h"
#include "pagefault.h"
#include "mongo/pch.h"

#include "mongo/db/client.h"

#include "mongo/db/db.h"
#include "mongo/db/commands.h"
#include "mongo/db/curop-inl.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/dbwebserver.h"
#include "mongo/db/instance.h"
#include "mongo/db/json.h"
#include "mongo/db/pagefault.h"
#include "mongo/db/repl/rs.h"
#include "mongo/s/d_logic.h"
#include "mongo/scripting/engine.h"
#include "mongo/db/security.h"
#include "mongo/util/file_allocator.h"
#include "mongo/util/mongoutils/checksum.h"
#include "mongo/util/mongoutils/html.h"

namespace mongo {

Expand Down Expand Up @@ -386,43 +389,6 @@ namespace mongo {
return c->toString();
}

void KillCurrentOp::interruptJs( AtomicUInt *op ) {
if ( !globalScriptEngine )
return;
if ( !op ) {
globalScriptEngine->interruptAll();
}
else {
globalScriptEngine->interrupt( *op );
}
}

void KillCurrentOp::killAll() {
_globalKill = true;
interruptJs( 0 );
}

void KillCurrentOp::kill(AtomicUInt i) {
bool found = false;
{
scoped_lock l( Client::clientsMutex );
for( set< Client* >::const_iterator j = Client::clients.begin(); !found && j != Client::clients.end(); ++j ) {
for( CurOp *k = ( *j )->curop(); !found && k; k = k->parent() ) {
if ( k->opNum() == i ) {
k->kill();
for( CurOp *l = ( *j )->curop(); l != k; l = l->parent() ) {
l->kill();
}
found = true;
}
}
}
}
if ( found ) {
interruptJs( &i );
}
}

void Client::gotHandshake( const BSONObj& o ) {
BSONObjIterator i(o);

Expand Down
24 changes: 14 additions & 10 deletions src/mongo/db/clientcursor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,23 @@
Cursor -- and its derived classes -- are our internal cursors.
*/

#include "pch.h"
#include "clientcursor.h"
#include "introspect.h"
#include "mongo/pch.h"

#include "mongo/db/clientcursor.h"

#include <time.h>
#include "db.h"
#include "commands.h"
#include "repl_block.h"
#include "../util/processinfo.h"
#include "../util/timer.h"

#include "mongo/client/dbclientinterface.h"
#include "mongo/db/scanandorder.h"
#include "pagefault.h"
#include "mongo/db/commands.h"
#include "mongo/db/db.h"
#include "mongo/db/introspect.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/pagefault.h"
#include "mongo/db/repl/rs.h"
#include "mongo/db/repl_block.h"
#include "mongo/db/scanandorder.h"
#include "mongo/util/processinfo.h"
#include "mongo/util/timer.h"

namespace mongo {

Expand Down
20 changes: 11 additions & 9 deletions src/mongo/db/cloner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,17 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "pch.h"
#include "cloner.h"
#include "pdfile.h"
#include "../bson/util/builder.h"
#include "jsobj.h"
#include "commands.h"
#include "db.h"
#include "instance.h"
#include "repl.h"
#include "mongo/pch.h"

#include "mongo/db/cloner.h"
#include "mongo/bson/util/builder.h"
#include "mongo/db/commands.h"
#include "mongo/db/db.h"
#include "mongo/db/instance.h"
#include "mongo/db/jsobj.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/pdfile.h"
#include "mongo/db/repl.h"

namespace mongo {

Expand Down
10 changes: 5 additions & 5 deletions src/mongo/db/commands/distinct.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

//#include "pch.h"
#include "../commands.h"
#include "../instance.h"
#include "../clientcursor.h"
#include "../../util/timer.h"
#include "mongo/db/clientcursor.h"
#include "mongo/db/commands.h"
#include "mongo/db/instance.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/util/timer.h"

namespace mongo {

Expand Down
1 change: 1 addition & 0 deletions src/mongo/db/commands/mr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "../../s/d_chunk_manager.h"
#include "../../s/d_logic.h"
#include "../../s/grid.h"
#include "mongo/db/kill_current_op.h"

#include "mr.h"

Expand Down
1 change: 1 addition & 0 deletions src/mongo/db/compact.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "mongo/db/extsort.h"
#include "mongo/db/index.h"
#include "mongo/db/index_update.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/pdfile.h"
#include "mongo/util/concurrency/task.h"
#include "mongo/util/timer.h"
Expand Down
27 changes: 4 additions & 23 deletions src/mongo/db/curop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "pch.h"
#include "curop.h"
#include "database.h"
#include "mongo/pch.h"

#include "mongo/db/curop.h"
#include "mongo/db/database.h"

namespace mongo {

Expand Down Expand Up @@ -181,26 +182,6 @@ namespace mongo {
return b.obj();
}

void KillCurrentOp::checkForInterrupt( bool heedMutex ) {
Client& c = cc();
if ( heedMutex && Lock::somethingWriteLocked() && c.hasWrittenThisPass() )
return;
if( _globalKill )
uasserted(11600,"interrupted at shutdown");
if( c.curop()->killed() ) {
uasserted(11601,"operation was interrupted");
}
}

const char * KillCurrentOp::checkForInterruptNoAssert() {
Client& c = cc();
if( _globalKill )
return "interrupted at shutdown";
if( c.curop()->killed() )
return "interrupted";
return "";
}


AtomicUInt CurOp::_nextOpNum;

Expand Down
44 changes: 9 additions & 35 deletions src/mongo/db/curop.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@

#pragma once

#include "namespace-inl.h"
#include "client.h"
#include "../bson/util/atomic_int.h"
#include "../util/concurrency/spin_lock.h"
#include "../util/time_support.h"
#include "../util/net/hostandport.h"
#include "../util/progress_meter.h"
#include <vector>

#include "mongo/bson/util/atomic_int.h"
#include "mongo/db/client.h"
#include "mongo/db/namespace-inl.h"
#include "mongo/util/concurrency/spin_lock.h"
#include "mongo/util/net/hostandport.h"
#include "mongo/util/progress_meter.h"
#include "mongo/util/time_support.h"

namespace mongo {

Expand Down Expand Up @@ -264,33 +266,5 @@ namespace mongo {
// so this should be 30000 in that case
long long _expectedLatencyMs;


};

/* _globalKill: we are shutting down
otherwise kill attribute set on specified CurOp
this class does not handle races between interruptJs and the checkForInterrupt functions - those must be
handled by the client of this class
*/
extern class KillCurrentOp {
public:
void killAll();
void kill(AtomicUInt i);

/** @return true if global interrupt and should terminate the operation */
bool globalInterruptCheck() const { return _globalKill; }

/**
* @param heedMutex if true and have a write lock, won't kill op since it might be unsafe
*/
void checkForInterrupt( bool heedMutex = true );

/** @return "" if not interrupted. otherwise, you should stop. */
const char *checkForInterruptNoAssert();

private:
void interruptJs( AtomicUInt *op );
volatile bool _globalKill;
} killCurrentOp;

}
8 changes: 5 additions & 3 deletions src/mongo/db/cursor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "pch.h"
#include "pdfile.h"
#include "curop-inl.h"
#include "mongo/pch.h"

#include "mongo/db/curop-inl.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/pdfile.h"

namespace mongo {

Expand Down
1 change: 1 addition & 0 deletions src/mongo/db/db.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include "mongo/db/instance.h"
#include "mongo/db/introspect.h"
#include "mongo/db/json.h"
#include "mongo/db/kill_current_op.h"
#include "mongo/db/module.h"
#include "mongo/db/pdfile.h"
#include "mongo/db/repl.h"
Expand Down
Loading

0 comments on commit 7922e03

Please sign in to comment.