From 846dd4769b765f5a7a7152060efd67a8e7344b21 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Sat, 26 Mar 2011 05:16:39 +0000 Subject: [PATCH] - better CRC worker thread distribution --- .../sources/platform/common/simple_threads.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source/shared_lib/sources/platform/common/simple_threads.cpp b/source/shared_lib/sources/platform/common/simple_threads.cpp index 11e4f4ac..8fdf3ce3 100644 --- a/source/shared_lib/sources/platform/common/simple_threads.cpp +++ b/source/shared_lib/sources/platform/common/simple_threads.cpp @@ -96,6 +96,20 @@ void FileCRCPreCacheThread::execute() { if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d] workerIdx = %d, currentWorkerMax = %d, endConsumerIndex = %d\n",__FILE__,__FUNCTION__,__LINE__,workerIdx,currentWorkerMax,endConsumerIndex); + // Pause before launching this worker thread + //sleep(100); + const double PAUSE_SECONDS_BETWEEN_WORKERS = 10; + time_t pauseTime = time(NULL); + while(getQuitStatus() == false && + difftime(time(NULL),pauseTime) <= PAUSE_SECONDS_BETWEEN_WORKERS) { + sleep(25); + } + if(getQuitStatus() == true) { + SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); + break; + } + + FileCRCPreCacheThread *workerThread = new FileCRCPreCacheThread(techDataPaths, workerTechList, @@ -103,7 +117,6 @@ void FileCRCPreCacheThread::execute() { workerThread->setUniqueID(__FILE__); preCacheWorkerThreadList.push_back(workerThread); workerThread->start(); - sleep(100); consumedWorkers += currentWorkerMax; if(consumedWorkers >= techPaths.size()) {