aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp
diff options
context:
space:
mode:
authorSheikh Dawood Abdul Ajees <[email protected]>2017-04-25 16:02:08 -0500
committerSheikh Dawood Abdul Ajees <[email protected]>2017-04-25 16:02:08 -0500
commitd11708e398c2f6377d9eac2b1f7248c62faab569 (patch)
tree5778e794690c046ab4b0205d8f764960a5af168b /PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp
parentPhysX 3.4, APEX 1.4 patch release @21821222 (diff)
downloadphysx-3.4-d11708e398c2f6377d9eac2b1f7248c62faab569.tar.xz
physx-3.4-d11708e398c2f6377d9eac2b1f7248c62faab569.zip
PhysX 3.4, APEX 1.4 patch release @22017166
Diffstat (limited to 'PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp')
-rw-r--r--PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp29
1 files changed, 2 insertions, 27 deletions
diff --git a/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp b/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp
index d5978518..82b7b891 100644
--- a/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp
+++ b/PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp
@@ -28,7 +28,6 @@
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
-#include "task/PxTask.h"
#include "ExtDefaultCpuDispatcher.h"
#include "ExtCpuWorkerThread.h"
#include "ExtTaskQueueHelper.h"
@@ -109,7 +108,6 @@ Ext::DefaultCpuDispatcher::DefaultCpuDispatcher(PxU32 numThreads, PxU32* affinit
}
}
-
Ext::DefaultCpuDispatcher::~DefaultCpuDispatcher()
{
for(PxU32 i = 0; i < mNumThreads; ++i)
@@ -129,22 +127,18 @@ Ext::DefaultCpuDispatcher::~DefaultCpuDispatcher()
PX_FREE(mThreadNames);
}
-
void Ext::DefaultCpuDispatcher::submitTask(PxBaseTask& task)
{
- Ps::Thread::Id currentThread = Ps::Thread::getId();
if(!mNumThreads)
{
// no worker threads, run directly
- if(mRunProfiled)
- task.runProfiled(PxU32(currentThread));
- else
- task.run();
+ runTask(task);
task.release();
return;
}
// TODO: Could use TLS to make this more efficient
+ const Ps::Thread::Id currentThread = Ps::Thread::getId();
for(PxU32 i = 0; i < mNumThreads; ++i)
{
if(mWorkerThreads[i].tryAcceptJobToLocalQueue(task, currentThread))
@@ -169,34 +163,16 @@ PxBaseTask* Ext::DefaultCpuDispatcher::fetchNextTask()
return task;
}
-void Ext::DefaultCpuDispatcher::runTask(PxBaseTask& task)
-{
- if(mRunProfiled)
- {
- const PxU32 threadId = PxU32(Ps::Thread::getId());
- task.runProfiled(threadId);
- }
- else
- task.run();
-}
-
-PxU32 Ext::DefaultCpuDispatcher::getWorkerCount() const
-{
- return mNumThreads;
-}
-
void Ext::DefaultCpuDispatcher::release()
{
PX_DELETE(this);
}
-
PxBaseTask* Ext::DefaultCpuDispatcher::getJob(void)
{
return TaskQueueHelper::fetchTask(mJobList, mQueueEntryPool);
}
-
PxBaseTask* Ext::DefaultCpuDispatcher::stealJob()
{
PxBaseTask* ret = NULL;
@@ -212,7 +188,6 @@ PxBaseTask* Ext::DefaultCpuDispatcher::stealJob()
return ret;
}
-
void Ext::DefaultCpuDispatcher::resetWakeSignal()
{
mWorkReady.reset();