made concurent task fail

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97 2023-07-14 21:07:53 +03:00
parent 7f4665e3cc
commit d3dc00dcab
No known key found for this signature in database
GPG Key ID: 55EF5DA53DB36318
2 changed files with 10 additions and 11 deletions

View File

@ -112,7 +112,6 @@ void Flame::FileResolvingTask::netJobFinished()
connect(m_checkJob.get(), &NetJob::failed, this, [this, step_progress](QString reason) { connect(m_checkJob.get(), &NetJob::failed, this, [this, step_progress](QString reason) {
step_progress->state = TaskStepState::Failed; step_progress->state = TaskStepState::Failed;
stepProgress(*step_progress); stepProgress(*step_progress);
emitFailed(reason);
}); });
connect(m_checkJob.get(), &NetJob::stepProgress, this, &FileResolvingTask::propogateStepProgress); connect(m_checkJob.get(), &NetJob::stepProgress, this, &FileResolvingTask::propogateStepProgress);
connect(m_checkJob.get(), &NetJob::progress, this, [this, step_progress](qint64 current, qint64 total) { connect(m_checkJob.get(), &NetJob::progress, this, [this, step_progress](qint64 current, qint64 total) {

View File

@ -118,8 +118,11 @@ void ConcurrentTask::startNext()
if (m_aborted || m_doing.count() > m_total_max_size) if (m_aborted || m_doing.count() > m_total_max_size)
return; return;
if (m_queue.isEmpty() && m_doing.isEmpty() && !wasSuccessful()) { if (m_queue.isEmpty() && m_doing.isEmpty() && isRunning()) {
emitSucceeded(); if (m_failed.isEmpty())
emitSucceeded();
else
emitFailed(tr("One or more subtasks failed"));
return; return;
} }
@ -194,7 +197,7 @@ void ConcurrentTask::subTaskStatus(Task::Ptr task, const QString& msg)
auto task_progress = m_task_progress.value(task->getUid()); auto task_progress = m_task_progress.value(task->getUid());
task_progress->status = msg; task_progress->status = msg;
task_progress->state = TaskStepState::Running; task_progress->state = TaskStepState::Running;
emit stepProgress(*task_progress); emit stepProgress(*task_progress);
if (totalSize() == 1) { if (totalSize() == 1) {
@ -207,7 +210,7 @@ void ConcurrentTask::subTaskDetails(Task::Ptr task, const QString& msg)
auto task_progress = m_task_progress.value(task->getUid()); auto task_progress = m_task_progress.value(task->getUid());
task_progress->details = msg; task_progress->details = msg;
task_progress->state = TaskStepState::Running; task_progress->state = TaskStepState::Running;
emit stepProgress(*task_progress); emit stepProgress(*task_progress);
if (totalSize() == 1) { if (totalSize() == 1) {
@ -220,7 +223,7 @@ void ConcurrentTask::subTaskProgress(Task::Ptr task, qint64 current, qint64 tota
auto task_progress = m_task_progress.value(task->getUid()); auto task_progress = m_task_progress.value(task->getUid());
task_progress->update(current, total); task_progress->update(current, total);
emit stepProgress(*task_progress); emit stepProgress(*task_progress);
updateStepProgress(*task_progress, Operation::CHANGED); updateStepProgress(*task_progress, Operation::CHANGED);
updateState(); updateState();
@ -233,7 +236,7 @@ void ConcurrentTask::subTaskProgress(Task::Ptr task, qint64 current, qint64 tota
void ConcurrentTask::subTaskStepProgress(Task::Ptr task, TaskStepProgress const& task_progress) void ConcurrentTask::subTaskStepProgress(Task::Ptr task, TaskStepProgress const& task_progress)
{ {
Operation op = Operation::ADDED; Operation op = Operation::ADDED;
if (!m_task_progress.contains(task_progress.uid)) { if (!m_task_progress.contains(task_progress.uid)) {
m_task_progress.insert(task_progress.uid, std::make_shared<TaskStepProgress>(task_progress)); m_task_progress.insert(task_progress.uid, std::make_shared<TaskStepProgress>(task_progress));
op = Operation::ADDED; op = Operation::ADDED;
@ -254,12 +257,10 @@ void ConcurrentTask::subTaskStepProgress(Task::Ptr task, TaskStepProgress const&
emit stepProgress(*tp.get()); emit stepProgress(*tp.get());
updateStepProgress(*tp.get(), op); updateStepProgress(*tp.get(), op);
} }
} }
void ConcurrentTask::updateStepProgress(TaskStepProgress const& changed_progress, Operation op) void ConcurrentTask::updateStepProgress(TaskStepProgress const& changed_progress, Operation op)
{ {
switch (op) { switch (op) {
case Operation::ADDED: case Operation::ADDED:
m_stepProgress += changed_progress.current; m_stepProgress += changed_progress.current;
@ -274,9 +275,8 @@ void ConcurrentTask::updateStepProgress(TaskStepProgress const& changed_progress
m_stepTotalProgress -= changed_progress.old_total; m_stepTotalProgress -= changed_progress.old_total;
m_stepProgress += changed_progress.current; m_stepProgress += changed_progress.current;
m_stepTotalProgress += changed_progress.total; m_stepTotalProgress += changed_progress.total;
break; break;
} }
} }
void ConcurrentTask::updateState() void ConcurrentTask::updateState()