summaryrefslogtreecommitdiff
path: root/source/modules/asura-utils/threading/thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-utils/threading/thread.cpp')
-rw-r--r--source/modules/asura-utils/threading/thread.cpp4
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();
}
}