void inProgCmd( Message &m, DbResponse &dbresponse ) { BSONObjBuilder b; if( ! cc().isAdmin() ) { b.append("err", "unauthorized"); } else { DbMessage d(m); QueryMessage q(d); bool all = q.query["$all"].trueValue(); vector<BSONObj> vals; { Client& me = cc(); scoped_lock bl(Client::clientsMutex); auto_ptr<Matcher> m(new Matcher(q.query)); for( set<Client*>::iterator i = Client::clients.begin(); i != Client::clients.end(); i++ ) { Client *c = *i; assert( c ); CurOp* co = c->curop(); if ( c == &me && !co ) { continue; } assert( co ); if( all || co->active() ) { BSONObj info = co->infoNoauth(); if ( all || m->matches( info )) { vals.push_back( info ); } } } } b.append("inprog", vals); unsigned x = lockedForWriting; if( x ) { b.append("fsyncLock", x); b.append("info", "use db.fsyncUnlock() to terminate the fsync write/snapshot lock"); } } replyToQuery(0, m, dbresponse, b.obj()); }