From b2ce4e32ea929d3c526bd432febc23c84b9814a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 26 Sep 2020 16:55:44 +0200 Subject: ksys/util: Add Task functions that were missed because of IDA's bad tail detection --- src/KingSystem/Utils/Thread/Task.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/KingSystem/Utils/Thread/Task.cpp') diff --git a/src/KingSystem/Utils/Thread/Task.cpp b/src/KingSystem/Utils/Thread/Task.cpp index 7ab00b55..7a3c3cff 100644 --- a/src/KingSystem/Utils/Thread/Task.cpp +++ b/src/KingSystem/Utils/Thread/Task.cpp @@ -84,11 +84,8 @@ bool Task::submitRequest(TaskRequest& request) { request.mQueue = mQueue; } mUserData = request.mUserData; - if (auto* delegate = request.mDelegate) { - deleteDelegate_(); - mFlags.set(Flag::DoNotDeleteDelegate); - mDelegate = delegate; - } + if (request.mDelegate) + setDelegateInternal_(request.mDelegate); mRemoveCallback = request.mRemoveCallback; mPostRunCallback = request.mPostRunCallback; mName = request.mName; @@ -126,6 +123,17 @@ bool Task::canSubmitRequest() const { return run_finished_on_current_thread || cond2; } +void Task::setUserData(void* user_data) { + mUserData = user_data; +} + +bool Task::setDelegateInternal_(TaskDelegate* delegate) { + deleteDelegate_(); + mFlags.set(Flag::DoNotDeleteDelegate); + mDelegate = delegate; + return delegate != nullptr; +} + void Task::processOnCurrentThreadDirectly(TaskThread* thread) { { TaskQueueLock lock{thread}; -- cgit v1.2.3