forked from qt-creator/qt-creator
Clang: Soft assert creation of a job
Change-Id: I59af185fe2942eb4cd191692c56e6449610312e3 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -92,24 +92,25 @@ JobRequests Jobs::runJobs(const JobRequests &jobsRequests)
|
|||||||
|
|
||||||
bool Jobs::runJob(const JobRequest &jobRequest)
|
bool Jobs::runJob(const JobRequest &jobRequest)
|
||||||
{
|
{
|
||||||
if (IAsyncJob *asyncJob = IAsyncJob::create(jobRequest.type)) {
|
IAsyncJob *asyncJob = IAsyncJob::create(jobRequest.type);
|
||||||
JobContext context(jobRequest, &m_documents, &m_unsavedFiles, &m_client);
|
QTC_ASSERT(asyncJob, return false);
|
||||||
asyncJob->setContext(context);
|
|
||||||
|
|
||||||
if (const IAsyncJob::AsyncPrepareResult prepareResult = asyncJob->prepareAsyncRun()) {
|
JobContext context(jobRequest, &m_documents, &m_unsavedFiles, &m_client);
|
||||||
qCDebug(jobsLog) << "Running" << jobRequest
|
asyncJob->setContext(context);
|
||||||
<< "with TranslationUnit" << prepareResult.translationUnitId;
|
|
||||||
|
|
||||||
asyncJob->setFinishedHandler([this](IAsyncJob *asyncJob){ onJobFinished(asyncJob); });
|
if (const IAsyncJob::AsyncPrepareResult prepareResult = asyncJob->prepareAsyncRun()) {
|
||||||
const QFuture<void> future = asyncJob->runAsync();
|
qCDebug(jobsLog) << "Running" << jobRequest
|
||||||
|
<< "with TranslationUnit" << prepareResult.translationUnitId;
|
||||||
|
|
||||||
const RunningJob runningJob{jobRequest, prepareResult.translationUnitId, future};
|
asyncJob->setFinishedHandler([this](IAsyncJob *asyncJob){ onJobFinished(asyncJob); });
|
||||||
m_running.insert(asyncJob, runningJob);
|
const QFuture<void> future = asyncJob->runAsync();
|
||||||
return true;
|
|
||||||
} else {
|
const RunningJob runningJob{jobRequest, prepareResult.translationUnitId, future};
|
||||||
qCDebug(jobsLog) << "Preparation failed for " << jobRequest;
|
m_running.insert(asyncJob, runningJob);
|
||||||
delete asyncJob;
|
return true;
|
||||||
}
|
} else {
|
||||||
|
qCDebug(jobsLog) << "Preparation failed for " << jobRequest;
|
||||||
|
delete asyncJob;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user