static void lockedReceivedInsert(const char *ns, Message &m, const vector<BSONObj> &objs, CurOp &op, const bool keepGoing) { // writelock is used to synchronize stepdowns w/ writes uassert(10058, "not master", isMasterNs(ns)); Client::Context ctx(ns); scoped_ptr<Client::AlternateTransactionStack> altStack(opNeedsAltTxn(ns) ? new Client::AlternateTransactionStack : NULL); Client::Transaction transaction(DB_SERIALIZABLE); insertObjects(ns, objs, keepGoing, 0, true); transaction.commit(); size_t n = objs.size(); globalOpCounters.gotInsert(n); op.debug().ninserted = n; }
void insertObject(const char *ns, const BSONObj &obj, uint64_t flags, bool logop) { vector<BSONObj> objs(1); objs[0] = obj; insertObjects(ns, objs, false, flags, logop); }