Use SharedData in JobQueue and set latency, limits for new job types

Conflicts:
	modules/ripple_core/functional/ripple_JobQueue.cpp
	modules/ripple_core/functional/ripple_JobQueue.h
This commit is contained in:
Vinnie Falco
2013-08-24 10:09:35 -07:00
parent 0ff521b040
commit ed3c1a153c
2 changed files with 104 additions and 65 deletions

View File

@@ -68,25 +68,30 @@ public:
Json::Value getJson (int c = 0);
private:
typedef boost::mutex JobLockType;
typedef JobLockType::scoped_lock ScopedLockType;
typedef std::set <Job> JobSet;
void queueJob (Job const& job, ScopedLockType&);
void getNextJob (Job& job, ScopedLockType&);
void finishJob (Job const& job);
struct State
{
State ();
uint64 lastJob;
JobSet jobSet;
JobCounts jobCounts;
};
typedef SharedData <State> SharedState;
void queueJob (Job const& job, SharedState::WriteAccess& state);
void getNextJob (Job& job, SharedState::WriteAccess& state);
void finishJob (Job const& job);
void processTask ();
static int getJobLimit (JobType type);
private:
SharedState m_state;
Workers m_workers;
JobLockType mJobLock;
uint64 mLastJob;
JobSet mJobSet;
LoadMonitor mJobLoads [NUM_JOB_TYPES];
JobCounts mJobCounts;
};
#endif