diff options
| author | Léo Lam <leo@leolam.fr> | 2020-09-26 16:55:44 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-09-26 17:04:43 +0200 |
| commit | b2ce4e32ea929d3c526bd432febc23c84b9814a4 (patch) | |
| tree | 309618c90ad01a2524eee9e0959b0f7e1ce77ac3 /src/KingSystem/Utils/Thread/Task.cpp | |
| parent | cdf27ca63c7a3450e4de44764cce40cecb7c062a (diff) | |
ksys/util: Add Task functions that were missed because of IDA's bad tail detection
Diffstat (limited to 'src/KingSystem/Utils/Thread/Task.cpp')
| -rw-r--r-- | src/KingSystem/Utils/Thread/Task.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
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}; |
