diff --git a/src/cpp/database/SqliteDatabase.cpp b/src/cpp/database/SqliteDatabase.cpp index e9e70fed4a..1033dcf4e3 100644 --- a/src/cpp/database/SqliteDatabase.cpp +++ b/src/cpp/database/SqliteDatabase.cpp @@ -223,7 +223,7 @@ void SqliteDatabase::doHook(const char *db, int pages) { walRunning = true; if (mWalQ) - mWalQ->addJob(jtWAL, std::string("WAL:") + db, boost::bind(&SqliteDatabase::runWal, this)); + mWalQ->addJob(jtWAL, std::string("WAL:") + mHost, boost::bind(&SqliteDatabase::runWal, this)); else boost::thread(boost::bind(&SqliteDatabase::runWal, this)).detach(); } diff --git a/src/cpp/ripple/JobQueue.h b/src/cpp/ripple/JobQueue.h index 386ccf5ff4..76602678f4 100644 --- a/src/cpp/ripple/JobQueue.h +++ b/src/cpp/ripple/JobQueue.h @@ -66,11 +66,11 @@ public: Job(JobType type, const std::string& name, uint64 index, LoadMonitor& lm, const boost::function& job) : mType(type), mJobIndex(index), mJob(job), mName(name) { - mLoadMonitor = boost::make_shared(boost::ref(lm), false, 1); + mLoadMonitor = boost::make_shared(boost::ref(lm), name, false, 1); } JobType getType() const { return mType; } - void doJob(void) { mLoadMonitor->start(); mJob(*this); mLoadMonitor->setName(mName); } + void doJob(void) { mLoadMonitor->start(); mJob(*this); mLoadMonitor->reName(mName); } void rename(const std::string& n) { mName = n; } bool operator<(const Job& j) const; @@ -110,10 +110,10 @@ public: void shutdown(); void setThreadCount(int c = 0); - LoadEvent::pointer getLoadEvent(JobType t) - { return boost::make_shared(boost::ref(mJobLoads[t]), true, 1); } - LoadEvent::autoptr getLoadEventAP(JobType t) - { return LoadEvent::autoptr(new LoadEvent(mJobLoads[t], true, 1)); } + LoadEvent::pointer getLoadEvent(JobType t, const std::string& name) + { return boost::make_shared(boost::ref(mJobLoads[t]), name, true, 1); } + LoadEvent::autoptr getLoadEventAP(JobType t, const std::string& name) + { return LoadEvent::autoptr(new LoadEvent(mJobLoads[t], name, true, 1)); } int isOverloaded(); Json::Value getJson(int c = 0); diff --git a/src/cpp/ripple/Ledger.cpp b/src/cpp/ripple/Ledger.cpp index 3937964eb7..4b21ddd41e 100644 --- a/src/cpp/ripple/Ledger.cpp +++ b/src/cpp/ripple/Ledger.cpp @@ -1530,8 +1530,8 @@ void Ledger::pendSave(bool fromConsensus) ++sPendingSaves; } - boost::thread(boost::bind(&Ledger::saveAcceptedLedger, shared_from_this(), - fromConsensus, theApp->getJobQueue().getLoadEvent(jtDISK))).detach(); + boost::thread(boost::bind(&Ledger::saveAcceptedLedger, shared_from_this(), fromConsensus, + theApp->getJobQueue().getLoadEvent(jtDISK, fromConsensus ? "Ledger::cSave" : "Ledger::save"))).detach(); } diff --git a/src/cpp/ripple/LedgerConsensus.cpp b/src/cpp/ripple/LedgerConsensus.cpp index 623cd542fa..dcb7f14712 100644 --- a/src/cpp/ripple/LedgerConsensus.cpp +++ b/src/cpp/ripple/LedgerConsensus.cpp @@ -1091,7 +1091,7 @@ void LedgerConsensus::beginAccept(bool synchronous) else { theApp->getIOService().post(boost::bind(&LedgerConsensus::accept, shared_from_this(), consensusSet, - theApp->getJobQueue().getLoadEvent(jtACCEPTLEDGER))); + theApp->getJobQueue().getLoadEvent(jtACCEPTLEDGER, "LedgerConsensus::beginAccept"))); } } diff --git a/src/cpp/ripple/LoadMonitor.h b/src/cpp/ripple/LoadMonitor.h index 4989f1e14d..c1328a7e86 100644 --- a/src/cpp/ripple/LoadMonitor.h +++ b/src/cpp/ripple/LoadMonitor.h @@ -64,7 +64,8 @@ protected: boost::posix_time::ptime mStartTime; public: - LoadEvent(LoadMonitor& monitor, bool shouldStart, int count) : mMonitor(monitor), mRunning(false), mCount(count) + LoadEvent(LoadMonitor& monitor, const std::string& name, bool shouldStart, int count) : + mMonitor(monitor), mRunning(false), mCount(count), mName(name) { mStartTime = boost::posix_time::microsec_clock::universal_time(); if (shouldStart) @@ -77,7 +78,7 @@ public: stop(); } - void setName(const std::string& name) + void reName(const std::string& name) { mName = name; } diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index 93b87b0869..d2c8d974ec 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -259,7 +259,7 @@ void NetworkOPs::runTransactionQueue() return; { - LoadEvent::autoptr ev = theApp->getJobQueue().getLoadEventAP(jtTXN_PROC); + LoadEvent::autoptr ev = theApp->getJobQueue().getLoadEventAP(jtTXN_PROC, "runTxnQ"); boost::recursive_mutex::scoped_lock sl(theApp->getMasterLock()); @@ -328,7 +328,7 @@ void NetworkOPs::runTransactionQueue() Transaction::pointer NetworkOPs::processTransaction(Transaction::pointer trans, stCallback callback) { - LoadEvent::autoptr ev = theApp->getJobQueue().getLoadEventAP(jtTXN_PROC); + LoadEvent::autoptr ev = theApp->getJobQueue().getLoadEventAP(jtTXN_PROC, "ProcessTXN"); int newFlags = theApp->getSuppression().getFlags(trans->getID()); if ((newFlags & SF_BAD) != 0) diff --git a/src/cpp/ripple/OrderBookDB.cpp b/src/cpp/ripple/OrderBookDB.cpp index b17c98ab96..61a1ef0c97 100644 --- a/src/cpp/ripple/OrderBookDB.cpp +++ b/src/cpp/ripple/OrderBookDB.cpp @@ -26,7 +26,7 @@ void OrderBookDB::setup(Ledger::ref ledger) return; mSeq = ledger->getLedgerSeq(); - LoadEvent::autoptr ev = theApp->getJobQueue().getLoadEventAP(jtOB_SETUP); + LoadEvent::autoptr ev = theApp->getJobQueue().getLoadEventAP(jtOB_SETUP, "OrderBookDB::setup"); mXRPOrders.clear(); mIssuerMap.clear(); diff --git a/src/cpp/ripple/Pathfinder.cpp b/src/cpp/ripple/Pathfinder.cpp index 1a2edc8bec..8548081b16 100644 --- a/src/cpp/ripple/Pathfinder.cpp +++ b/src/cpp/ripple/Pathfinder.cpp @@ -141,7 +141,7 @@ Pathfinder::Pathfinder(Ledger::ref ledger, theApp->getOrderBookDB().setup(mLedger); - mLoadMonitor = theApp->getJobQueue().getLoadEvent(jtPATH_FIND); + mLoadMonitor = theApp->getJobQueue().getLoadEvent(jtPATH_FIND, "FindPath"); // Construct the default path for later comparison. diff --git a/src/cpp/ripple/Peer.cpp b/src/cpp/ripple/Peer.cpp index e8a8b88154..122228323a 100644 --- a/src/cpp/ripple/Peer.cpp +++ b/src/cpp/ripple/Peer.cpp @@ -424,7 +424,7 @@ void Peer::processReadBuffer() // std::cerr << "Peer::processReadBuffer: " << mIpPort.first << " " << mIpPort.second << std::endl; - LoadEvent::autoptr event(theApp->getJobQueue().getLoadEventAP(jtPEER)); + LoadEvent::autoptr event(theApp->getJobQueue().getLoadEventAP(jtPEER, "Peer::read")); boost::recursive_mutex::scoped_lock sl(theApp->getMasterLock()); diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index aef20331b5..be26949a61 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -2879,7 +2879,7 @@ Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole) cLog(lsTRACE) << "COMMAND:" << strCommand; cLog(lsTRACE) << "REQUEST:" << jvRequest; - LoadEvent::autoptr le(theApp->getJobQueue().getLoadEventAP(jtRPC)); + LoadEvent::autoptr le(theApp->getJobQueue().getLoadEventAP(jtRPC, "RPC")); mRole = iRole; diff --git a/src/cpp/ripple/ValidationCollection.cpp b/src/cpp/ripple/ValidationCollection.cpp index 699dc8afb4..c67d1aa8b9 100644 --- a/src/cpp/ripple/ValidationCollection.cpp +++ b/src/cpp/ripple/ValidationCollection.cpp @@ -299,7 +299,7 @@ void ValidationCollection::condWrite() void ValidationCollection::doWrite(Job&) { - LoadEvent::autoptr event(theApp->getJobQueue().getLoadEventAP(jtDISK)); + LoadEvent::autoptr event(theApp->getJobQueue().getLoadEventAP(jtDISK, "ValidationWrite")); static boost::format insVal("INSERT INTO Validations " "(LedgerHash,NodePubKey,SignTime,RawData) VALUES ('%s','%s','%u',%s);");