mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
Use std::function in JobQueue.
This commit is contained in:
committed by
Nik Bougalis
parent
545b2fd6b1
commit
a6f866b4d8
@@ -642,11 +642,14 @@ void LedgerConsensusImp::handleLCL (uint256 const& lclHash)
|
||||
|
||||
// Tell the ledger acquire system that we need the consensus ledger
|
||||
mAcquiringLedger = mPrevLedgerHash;
|
||||
getApp().getJobQueue().addJob (jtADVANCE, "getConsensusLedger",
|
||||
std::bind (
|
||||
&InboundLedgers::acquire,
|
||||
&getApp().getInboundLedgers(),
|
||||
mPrevLedgerHash, 0, InboundLedger::fcCONSENSUS));
|
||||
auto& previousHash = mPrevLedgerHash;
|
||||
auto acquire = [previousHash] (Job&) {
|
||||
getApp().getInboundLedgers().acquire(
|
||||
previousHash, 0, InboundLedger::fcCONSENSUS);
|
||||
};
|
||||
getApp().getJobQueue().addJob (
|
||||
jtADVANCE, "getConsensusLedger", acquire);
|
||||
;
|
||||
mHaveCorrectLCL = false;
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -36,15 +36,11 @@ protected:
|
||||
JobQueue (char const* name, Stoppable& parent);
|
||||
|
||||
public:
|
||||
using JobFunction = std::function <void (Job&)>;
|
||||
virtual ~JobQueue () { }
|
||||
|
||||
// VFALCO NOTE Using boost::function here because Visual Studio 2012
|
||||
// std::function doesn't swallow return types.
|
||||
//
|
||||
// TODO Replace with std::function
|
||||
//
|
||||
virtual void addJob (JobType type,
|
||||
std::string const& name, boost::function <void (Job&)> const& job) = 0;
|
||||
virtual void addJob (
|
||||
JobType, std::string const& name, JobFunction const&) = 0;
|
||||
|
||||
// Jobs waiting at this priority
|
||||
virtual int getJobCount (JobType t) const = 0;
|
||||
|
||||
@@ -115,8 +115,8 @@ public:
|
||||
job_count = m_jobSet.size ();
|
||||
}
|
||||
|
||||
void addJob (JobType type, std::string const& name,
|
||||
boost::function <void (Job&)> const& jobFunc) override
|
||||
void addJob (
|
||||
JobType type, std::string const& name, JobFunction const& func) override
|
||||
{
|
||||
assert (type != jtINVALID);
|
||||
|
||||
@@ -166,7 +166,7 @@ public:
|
||||
|
||||
std::pair <std::set <Job>::iterator, bool> result (
|
||||
m_jobSet.insert (Job (type, name, ++m_lastJob,
|
||||
data.load (), jobFunc, m_cancelCallback)));
|
||||
data.load (), func, m_cancelCallback)));
|
||||
queueJob (*result.first, lock);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace {
|
||||
|
||||
void runOnJobQueue(std::string const& name, Callback const& callback)
|
||||
{
|
||||
boost::function <void (Job&)> cb([callback] (Job&) { callback(); });
|
||||
auto cb = [callback] (Job&) { callback(); };
|
||||
getApp().getJobQueue().addJob(jtCLIENT, name, cb);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user