Clang: Add job queue for each document

...in preparation for follow-up changes. This will enable e.g. a timer
per document.

This does not change any behavior yet.

Change-Id: Ic1dc06de602373c666d47ce7a95ab99e56d389d5
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2016-09-08 15:49:54 +02:00
parent b64bb0a7e3
commit c12d01fb41
18 changed files with 771 additions and 43 deletions

View File

@@ -53,9 +53,15 @@ Jobs::Jobs(Documents &documents,
Jobs::~Jobs()
{
foreach (IAsyncJob *asyncJob, m_running.keys())
asyncJob->preventFinalization();
QFutureSynchronizer<void> waitForFinishedJobs;
foreach (const RunningJob &runningJob, m_running.values())
waitForFinishedJobs.addFuture(runningJob.future);
foreach (IAsyncJob *asyncJob, m_running.keys())
delete asyncJob;
}
void Jobs::add(const JobRequest &job)
@@ -118,9 +124,9 @@ void Jobs::onJobFinished(IAsyncJob *asyncJob)
process();
}
int Jobs::runningJobs() const
QList<Jobs::RunningJob> Jobs::runningJobs() const
{
return m_running.size();
return m_running.values();
}
JobRequests Jobs::queue() const