cleaning to make sure _init isn't being called twice
This commit is contained in:
@@ -311,6 +311,7 @@ namespace mongo {
|
||||
: ClusteredCursor( q ) , _servers( servers ){
|
||||
_sortKey = sortKey.getOwned();
|
||||
_needToSkip = q.ntoskip;
|
||||
_finishCons();
|
||||
}
|
||||
|
||||
ParallelSortClusteredCursor::ParallelSortClusteredCursor( const set<ServerAndQuery>& servers , const string& ns ,
|
||||
@@ -319,15 +320,21 @@ namespace mongo {
|
||||
: ClusteredCursor( ns , q.obj , options , fields ) , _servers( servers ){
|
||||
_sortKey = q.getSort().copy();
|
||||
_needToSkip = 0;
|
||||
_finishCons();
|
||||
}
|
||||
|
||||
void ParallelSortClusteredCursor::_init(){
|
||||
void ParallelSortClusteredCursor::_finishCons(){
|
||||
_numServers = _servers.size();
|
||||
_cursors = 0;
|
||||
}
|
||||
|
||||
void ParallelSortClusteredCursor::_init(){
|
||||
assert( ! _cursors );
|
||||
_cursors = new FilteringClientCursor[_numServers];
|
||||
|
||||
// TODO: parellize
|
||||
int num = 0;
|
||||
for ( set<ServerAndQuery>::iterator i = _servers.begin(); i!=_servers.end(); i++ ){
|
||||
for ( set<ServerAndQuery>::iterator i = _servers.begin(); i!=_servers.end(); ++i ){
|
||||
const ServerAndQuery& sq = *i;
|
||||
_cursors[num++].reset( query( sq._server , 0 , sq._extra , _needToSkip ) );
|
||||
}
|
||||
@@ -336,6 +343,7 @@ namespace mongo {
|
||||
|
||||
ParallelSortClusteredCursor::~ParallelSortClusteredCursor(){
|
||||
delete [] _cursors;
|
||||
_cursors = 0;
|
||||
}
|
||||
|
||||
bool ParallelSortClusteredCursor::more(){
|
||||
|
||||
Reference in New Issue
Block a user