impr: Allow tasks to be created without getting the task handle as parameter
This commit is contained in:
parent
5dfd8c89a3
commit
e9fb02285e
@ -137,6 +137,15 @@ namespace hex {
|
|||||||
*/
|
*/
|
||||||
static TaskHolder createTask(const UnlocalizedString &unlocalizedName, u64 maxValue, std::function<void(Task &)> function);
|
static TaskHolder createTask(const UnlocalizedString &unlocalizedName, u64 maxValue, std::function<void(Task &)> function);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Creates a new asynchronous task that gets displayed in the Task Manager in the footer
|
||||||
|
* @param unlocalizedName Name of the task
|
||||||
|
* @param maxValue Maximum value of the task
|
||||||
|
* @param function Function to be executed
|
||||||
|
* @return A TaskHolder holding a weak reference to the task
|
||||||
|
*/
|
||||||
|
static TaskHolder createTask(const UnlocalizedString &unlocalizedName, u64 maxValue, std::function<void()> function);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Creates a new asynchronous task that does not get displayed in the Task Manager
|
* @brief Creates a new asynchronous task that does not get displayed in the Task Manager
|
||||||
* @param unlocalizedName Name of the task
|
* @param unlocalizedName Name of the task
|
||||||
@ -145,6 +154,14 @@ namespace hex {
|
|||||||
*/
|
*/
|
||||||
static TaskHolder createBackgroundTask(const UnlocalizedString &unlocalizedName, std::function<void(Task &)> function);
|
static TaskHolder createBackgroundTask(const UnlocalizedString &unlocalizedName, std::function<void(Task &)> function);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Creates a new asynchronous task that does not get displayed in the Task Manager
|
||||||
|
* @param unlocalizedName Name of the task
|
||||||
|
* @param function Function to be executed
|
||||||
|
* @return A TaskHolder holding a weak reference to the task
|
||||||
|
*/
|
||||||
|
static TaskHolder createBackgroundTask(const UnlocalizedString &unlocalizedName, std::function<void()> function);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Creates a new synchronous task that will execute the given function at the start of the next frame
|
* @brief Creates a new synchronous task that will execute the given function at the start of the next frame
|
||||||
* @param function Function to be executed
|
* @param function Function to be executed
|
||||||
|
@ -349,11 +349,29 @@ namespace hex {
|
|||||||
return createTask(std::move(unlocalizedName), maxValue, false, std::move(function));
|
return createTask(std::move(unlocalizedName), maxValue, false, std::move(function));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskHolder TaskManager::createTask(const UnlocalizedString &unlocalizedName, u64 maxValue, std::function<void()> function) {
|
||||||
|
log::debug("Creating task {}", unlocalizedName.get());
|
||||||
|
return createTask(std::move(unlocalizedName), maxValue, false,
|
||||||
|
[function = std::move(function)](Task&) {
|
||||||
|
function();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
TaskHolder TaskManager::createBackgroundTask(const UnlocalizedString &unlocalizedName, std::function<void(Task &)> function) {
|
TaskHolder TaskManager::createBackgroundTask(const UnlocalizedString &unlocalizedName, std::function<void(Task &)> function) {
|
||||||
log::debug("Creating background task {}", unlocalizedName.get());
|
log::debug("Creating background task {}", unlocalizedName.get());
|
||||||
return createTask(std::move(unlocalizedName), 0, true, std::move(function));
|
return createTask(std::move(unlocalizedName), 0, true, std::move(function));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskHolder TaskManager::createBackgroundTask(const UnlocalizedString &unlocalizedName, std::function<void()> function) {
|
||||||
|
log::debug("Creating background task {}", unlocalizedName.get());
|
||||||
|
return createTask(std::move(unlocalizedName), 0, true,
|
||||||
|
[function = std::move(function)](Task&) {
|
||||||
|
function();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
void TaskManager::collectGarbage() {
|
void TaskManager::collectGarbage() {
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(s_queueMutex);
|
std::scoped_lock lock(s_queueMutex);
|
||||||
|
Loading…
Reference in New Issue
Block a user