diff options
Diffstat (limited to 'source/modules/asura-utils/threading/thread.cpp')
-rw-r--r-- | source/modules/asura-utils/threading/thread.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/modules/asura-utils/threading/thread.cpp b/source/modules/asura-utils/threading/thread.cpp index fc397d2..0899485 100644 --- a/source/modules/asura-utils/threading/thread.cpp +++ b/source/modules/asura-utils/threading/thread.cpp @@ -43,6 +43,7 @@ namespace AsuraEngine { lock(mTaskQueueMutex) { + task->Retain(); mTaskQueue.push(task); } return true; @@ -207,6 +208,7 @@ namespace AsuraEngine if (mType == THREAD_TYPE_DEFERRED) { mFinishedMutex.Lock(); + task->Retain(); mFinishedTasks.push(task); mFinishedMutex.Unlock(); } @@ -218,6 +220,7 @@ namespace AsuraEngine } mTaskQueueMutex.Lock(); mTaskQueue.pop(); + task->Release(); mTaskQueueMutex.Unlock(); } } @@ -262,6 +265,7 @@ namespace AsuraEngine this->LuaxRelease<Task>(state, task); mFinishedMutex.Lock(); mFinishedTasks.pop(); + task->Release(); mFinishedMutex.Unlock(); } } |