38#ifndef BLOCXX_THREAD_POOL_HPP_INCLUDE_GUARD_
39#define BLOCXX_THREAD_POOL_HPP_INCLUDE_GUARD_
40#include "blocxx/BLOCXX_config.h"
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)
#define BLOCXX_DECLARE_APIEXCEPTION(NAME, LINKAGE_SPEC)
Declare a new exception class named <NAME>Exception that derives from Exception This macro is typical...
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.
@ E_DISCARD_WORK_IN_QUEUE
IntrusiveReference< ThreadPoolImpl > m_impl
A timeout can be absolute, which means that it will happen at the specified DateTime.
BLOCXX_EXPORT_TEMPLATE(BLOCXX_COMMON_API, Array, Bool)