modifié : MakefileNoOTB
modifié : include/triskeleDealThreads.hpp modifié : include/triskeleDealThreads.tpp
This commit is contained in:
parent
56ab83f230
commit
806fcc2f9a
@ -17,7 +17,7 @@ TST_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(TST_PRG))
|
||||
TST_OUT = $(patsubst %, $(OUT_DIR)/%, $(TST_PRG))
|
||||
|
||||
## FLAGS ###############################
|
||||
DFLAGS = -O2 -DNDEBUG -DBOOST_DISABLE_ASSERTS -DNO_OTB
|
||||
DFLAGS = -O2 -DNDEBUG -DBOOST_DISABLE_ASSERTS -DNO_OTB -DTHREAD_DISABLE
|
||||
#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG
|
||||
IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR)
|
||||
LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef _TRISKELE_DEAL_THREADS_HPP
|
||||
#define _TRISKELE_DEAL_THREADS_HPP
|
||||
|
||||
#ifdef XEON_TBB_THREAD
|
||||
#include <tbb/tbb.h>
|
||||
#endif
|
||||
#include <boost/thread.hpp>
|
||||
|
||||
namespace triskele {
|
||||
|
@ -61,17 +61,22 @@ dealThread (const DimImg &maxId, unsigned int coreCount, const FunctThreadMinMax
|
||||
|
||||
std::vector<DimImg> maxIds = getDealThreadBounds (maxId, coreCount);
|
||||
boost::thread tasks [coreCount];
|
||||
#ifdef THREAD_DISABLE
|
||||
for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) {
|
||||
#ifndef THREAD_DISABLE
|
||||
tasks[idCopyValInThread] = boost::thread ([/*no ref!!!*/idCopyValInThread, &maxIds, &functThreadMinMax] () {
|
||||
#endif
|
||||
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
||||
#ifndef THREAD_DISABLE
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef THREAD_DISABLE
|
||||
#elif XEON_TBB_THREAD
|
||||
using namespace tbb;
|
||||
#pragma warning(disable: 588)
|
||||
parallel_for (size_t (0), size_t (coreCount), [&maxIds, &functThreadMinMax] (size_t idCopyValInThread) {
|
||||
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
||||
});
|
||||
#else
|
||||
for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) {
|
||||
tasks[idCopyValInThread] = boost::thread ([/*no ref!!!*/idCopyValInThread, &maxIds, &functThreadMinMax] () {
|
||||
functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]);
|
||||
});
|
||||
}
|
||||
for (unsigned int i = 0; i < coreCount; ++i)
|
||||
tasks[i].join ();
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user