38 #ifndef BLOCXX_THREAD_POOL_HPP_INCLUDE_GUARD_
39 #define BLOCXX_THREAD_POOL_HPP_INCLUDE_GUARD_
40 #include "blocxx/BLOCXX_config.h"
49 namespace BLOCXX_NAMESPACE
74 UNLIMITED_QUEUE_SIZE = 0
105 ThreadPool(PoolType poolType, UInt32 numThreads, UInt32 maxQueueSize,
const Logger& logger,
const String& poolName=
"");
106 ThreadPool(PoolType poolType, UInt32 numThreads, UInt32 maxQueueSize,
const String& poolName=
"");
128 E_FINISH_WORK_IN_QUEUE
145 void shutdown(EShutdownQueueFlag finishWorkInQueue = E_FINISH_WORK_IN_QUEUE,
const Timeout& timeout =
Timeout::infinite);
146 void shutdown(EShutdownQueueFlag finishWorkInQueue,
int timeoutSecs)
BLOCXX_DEPRECATED;
170 void shutdown(EShutdownQueueFlag finishWorkInQueue,
const Timeout& shutdownTimeout,
const Timeout& definitiveCancelTimeout);
175 void waitForEmptyQueue();
186 #pragma warning (push)
187 #pragma warning (disable: 4251)
193 #pragma warning (pop)
BLOCXX_EXPORT_TEMPLATE(BLOCXX_COMMON_API, Array, Bool)
const UInt32 INFINITE_TIMEOUT BLOCXX_DEPRECATED
Value that means infinite timeout.
This String class is an abstract data type that represents as NULL terminated string of characters...
The ThreadPool class is used to coordinate a group of threads.
A timeout can be absolute, which means that it will happen at the specified DateTime.
IntrusiveReference< ThreadPoolImpl > m_impl
#define BLOCXX_DECLARE_APIEXCEPTION(NAME, LINKAGE_SPEC)
Declare a new exception class named <NAME>Exception that derives from Exception This macro is typical...