diff --git a/src/common/R2Task.cpp b/src/common/R2Task.cpp index be240d92..f3e539e4 100644 --- a/src/common/R2Task.cpp +++ b/src/common/R2Task.cpp @@ -1,20 +1,20 @@ #include "R2Task.h" -R2Task::R2Task(const QString &cmd) +R2Task::R2Task(const QString &cmd, bool transient) { task = r_core_task_new(Core()->core(), true, cmd.toLocal8Bit().constData(), static_cast(&R2Task::taskFinishedCallback), this); + task->transient = transient; + r_core_task_incref(task); } R2Task::~R2Task() { - // Don't delete current task as it might be still running - // TODO - // For now tasks are not freed, so find we need to something + r_core_task_decref(task); } void R2Task::taskFinishedCallback(void *user, char *) diff --git a/src/common/R2Task.h b/src/common/R2Task.h index ff7ba537..5aec2fc2 100644 --- a/src/common/R2Task.h +++ b/src/common/R2Task.h @@ -15,7 +15,7 @@ private: void taskFinished(); public: - explicit R2Task(const QString &cmd); + explicit R2Task(const QString &cmd, bool transient = true); ~R2Task(); void startTask();