mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-05-09 11:04:39 +02:00
fix: crash when task was canceled and abort signal was fired early (#3712)
This commit is contained in:
commit
36d18b393b
@ -72,7 +72,6 @@ bool InstanceImportTask::abort()
|
|||||||
bool wasAborted = false;
|
bool wasAborted = false;
|
||||||
if (m_task)
|
if (m_task)
|
||||||
wasAborted = m_task->abort();
|
wasAborted = m_task->abort();
|
||||||
Task::abort();
|
|
||||||
return wasAborted;
|
return wasAborted;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,7 +304,7 @@ void InstanceImportTask::processFlame()
|
|||||||
connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
|
connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
|
||||||
connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
|
connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
|
||||||
|
|
||||||
connect(inst_creation_task.get(), &Task::aborted, this, &Task::abort);
|
connect(inst_creation_task.get(), &Task::aborted, this, &InstanceImportTask::emitAborted);
|
||||||
connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
|
connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
|
||||||
|
|
||||||
m_task.reset(inst_creation_task);
|
m_task.reset(inst_creation_task);
|
||||||
@ -404,7 +403,7 @@ void InstanceImportTask::processModrinth()
|
|||||||
connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
|
connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
|
||||||
connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
|
connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
|
||||||
|
|
||||||
connect(inst_creation_task.get(), &Task::aborted, this, &Task::abort);
|
connect(inst_creation_task.get(), &Task::aborted, this, &InstanceImportTask::emitAborted);
|
||||||
connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
|
connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
|
||||||
|
|
||||||
m_task.reset(inst_creation_task);
|
m_task.reset(inst_creation_task);
|
||||||
|
@ -55,6 +55,7 @@ void ArchiveDownloadTask::executeTask()
|
|||||||
connect(download.get(), &Task::stepProgress, this, &ArchiveDownloadTask::propagateStepProgress);
|
connect(download.get(), &Task::stepProgress, this, &ArchiveDownloadTask::propagateStepProgress);
|
||||||
connect(download.get(), &Task::status, this, &ArchiveDownloadTask::setStatus);
|
connect(download.get(), &Task::status, this, &ArchiveDownloadTask::setStatus);
|
||||||
connect(download.get(), &Task::details, this, &ArchiveDownloadTask::setDetails);
|
connect(download.get(), &Task::details, this, &ArchiveDownloadTask::setDetails);
|
||||||
|
connect(download.get(), &Task::aborted, this, &ArchiveDownloadTask::emitAborted);
|
||||||
connect(download.get(), &Task::succeeded, [this, fullPath] {
|
connect(download.get(), &Task::succeeded, [this, fullPath] {
|
||||||
// This should do all of the extracting and creating folders
|
// This should do all of the extracting and creating folders
|
||||||
extractJava(fullPath);
|
extractJava(fullPath);
|
||||||
@ -135,7 +136,6 @@ bool ArchiveDownloadTask::abort()
|
|||||||
auto aborted = canAbort();
|
auto aborted = canAbort();
|
||||||
if (m_task)
|
if (m_task)
|
||||||
aborted = m_task->abort();
|
aborted = m_task->abort();
|
||||||
emitAborted();
|
|
||||||
return aborted;
|
return aborted;
|
||||||
};
|
};
|
||||||
} // namespace Java
|
} // namespace Java
|
@ -70,7 +70,6 @@ bool FlamePackExportTask::abort()
|
|||||||
{
|
{
|
||||||
if (task) {
|
if (task) {
|
||||||
task->abort();
|
task->abort();
|
||||||
emitAborted();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -171,6 +170,7 @@ void FlamePackExportTask::collectHashes()
|
|||||||
progressStep->status = status;
|
progressStep->status = status;
|
||||||
stepProgress(*progressStep);
|
stepProgress(*progressStep);
|
||||||
});
|
});
|
||||||
|
connect(hashingTask.get(), &Task::aborted, this, &FlamePackExportTask::emitAborted);
|
||||||
hashingTask->start();
|
hashingTask->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,6 +246,7 @@ void FlamePackExportTask::makeApiRequest()
|
|||||||
getProjectsInfo();
|
getProjectsInfo();
|
||||||
});
|
});
|
||||||
connect(task.get(), &Task::failed, this, &FlamePackExportTask::getProjectsInfo);
|
connect(task.get(), &Task::failed, this, &FlamePackExportTask::getProjectsInfo);
|
||||||
|
connect(task.get(), &Task::aborted, this, &FlamePackExportTask::emitAborted);
|
||||||
task->start();
|
task->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,6 +325,7 @@ void FlamePackExportTask::getProjectsInfo()
|
|||||||
buildZip();
|
buildZip();
|
||||||
});
|
});
|
||||||
connect(projTask.get(), &Task::failed, this, &FlamePackExportTask::emitFailed);
|
connect(projTask.get(), &Task::failed, this, &FlamePackExportTask::emitFailed);
|
||||||
|
connect(task.get(), &Task::aborted, this, &FlamePackExportTask::emitAborted);
|
||||||
task.reset(projTask);
|
task.reset(projTask);
|
||||||
task->start();
|
task->start();
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,6 @@ bool ModrinthPackExportTask::abort()
|
|||||||
{
|
{
|
||||||
if (task) {
|
if (task) {
|
||||||
task->abort();
|
task->abort();
|
||||||
emitAborted();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -158,6 +157,7 @@ void ModrinthPackExportTask::makeApiRequest()
|
|||||||
task = api.currentVersions(pendingHashes.values(), "sha512", response);
|
task = api.currentVersions(pendingHashes.values(), "sha512", response);
|
||||||
connect(task.get(), &Task::succeeded, [this, response]() { parseApiResponse(response); });
|
connect(task.get(), &Task::succeeded, [this, response]() { parseApiResponse(response); });
|
||||||
connect(task.get(), &Task::failed, this, &ModrinthPackExportTask::emitFailed);
|
connect(task.get(), &Task::failed, this, &ModrinthPackExportTask::emitFailed);
|
||||||
|
connect(task.get(), &Task::aborted, this, &ModrinthPackExportTask::emitAborted);
|
||||||
task->start();
|
task->start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user