diff options
| author | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-04-25 16:02:08 -0500 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-04-25 16:02:08 -0500 |
| commit | d11708e398c2f6377d9eac2b1f7248c62faab569 (patch) | |
| tree | 5778e794690c046ab4b0205d8f764960a5af168b /PhysX_3.4/Source/PhysXExtensions/src/ExtDefaultCpuDispatcher.cpp | |
| parent | PhysX 3.4, APEX 1.4 patch release @21821222 (diff) | |
| download | physx-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.cpp | 29 |
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(); |