1 #include <Poco/ScopedLock.h>
8 using namespace HCE::exception;
13 Poco::ScopedLock<Poco::FastMutex> sLock(globalComponentMutex);
15 if(it != tManagerMap.end())
19 Poco::SharedPtr<Poco::ThreadPool> _threadPoolPtr;
22 _threadPoolPtr = Poco::SharedPtr<Poco::ThreadPool>(
new Poco::ThreadPool());
23 cManagerPtr->setThreadPool(_threadPoolPtr);
25 Poco::ThreadPool &localPool = (_useCommonPool ? thPool : (*_threadPoolPtr));
26 cManagerPtr->setTaskManager(Poco::SharedPtr<Poco::TaskManager> (
new Poco::TaskManager(localPool)));
27 tManagerMap[componentType] = cManagerPtr;
32 Poco::ScopedLock<Poco::FastMutex> sLock(globalComponentMutex);
33 Poco::SharedPtr<TaskWaitObject> task = Poco::SharedPtr<TaskWaitObject>(
new TaskWaitObject(inData));
35 if(it == tManagerMap.end())
41 (*it).second->addTask(task);
48 Poco::ScopedLock<Poco::FastMutex> sLock(globalComponentMutex);
50 if(it == tManagerMap.end())
56 (*it).second->clearTaskQueue();
63 for(
ManagerIterator it = tManagerMap.begin(); it != tManagerMap.end(); it++)
67 if(((*it).second)->isRunning())
69 ((*it).second)->stop();
70 ((*it).second)->join();