blocxx
Classes | Namespaces | Macros
ThreadPool.cpp File Reference
#include "blocxx/BLOCXX_config.h"
#include "blocxx/ThreadPool.hpp"
#include "blocxx/Array.hpp"
#include "blocxx/Thread.hpp"
#include "blocxx/NonRecursiveMutex.hpp"
#include "blocxx/NonRecursiveMutexLock.hpp"
#include "blocxx/Condition.hpp"
#include "blocxx/Format.hpp"
#include "blocxx/Mutex.hpp"
#include "blocxx/MutexLock.hpp"
#include "blocxx/NullLogger.hpp"
#include "blocxx/Timeout.hpp"
#include "blocxx/TimeoutTimer.hpp"
#include "blocxx/GlobalString.hpp"
#include <deque>

Go to the source code of this file.

Classes

class  BLOCXX_NAMESPACE::ThreadPoolImpl
 

Namespaces

 BLOCXX_NAMESPACE
 Taken from RFC 1321.
 

Macros

#define BLOCXX_POOL_LOG_DEBUG(logger, arg)   do { BLOCXX_LOG_DEBUG(logger, m_poolName + ": " + arg); } while (0)
 
#define BLOCXX_POOL_LOG_DEBUG2(logger, arg)   do { BLOCXX_LOG_DEBUG2(logger, m_poolName + ": " + arg); } while (0)
 
#define BLOCXX_POOL_LOG_DEBUG3(logger, arg)   do { BLOCXX_LOG_DEBUG3(logger, m_poolName + ": " + arg); } while (0)
 
#define BLOCXX_POOL_LOG_ERROR(logger, arg)   do { BLOCXX_LOG_ERROR(logger, m_poolName + ": " + arg); } while (0)
 
#define BLOCXX_POOL_LOG_FATAL_ERROR(logger, arg)   do { BLOCXX_LOG_FATAL_ERROR(logger, m_poolName + ": " + arg); } while (0)
 

Macro Definition Documentation

◆ BLOCXX_POOL_LOG_DEBUG

#define BLOCXX_POOL_LOG_DEBUG (   logger,
  arg 
)    do { BLOCXX_LOG_DEBUG(logger, m_poolName + ": " + arg); } while (0)

Definition at line 96 of file ThreadPool.cpp.

◆ BLOCXX_POOL_LOG_DEBUG2

#define BLOCXX_POOL_LOG_DEBUG2 (   logger,
  arg 
)    do { BLOCXX_LOG_DEBUG2(logger, m_poolName + ": " + arg); } while (0)

Definition at line 97 of file ThreadPool.cpp.

◆ BLOCXX_POOL_LOG_DEBUG3

#define BLOCXX_POOL_LOG_DEBUG3 (   logger,
  arg 
)    do { BLOCXX_LOG_DEBUG3(logger, m_poolName + ": " + arg); } while (0)

Definition at line 98 of file ThreadPool.cpp.

◆ BLOCXX_POOL_LOG_ERROR

#define BLOCXX_POOL_LOG_ERROR (   logger,
  arg 
)    do { BLOCXX_LOG_ERROR(logger, m_poolName + ": " + arg); } while (0)

Definition at line 99 of file ThreadPool.cpp.

◆ BLOCXX_POOL_LOG_FATAL_ERROR

#define BLOCXX_POOL_LOG_FATAL_ERROR (   logger,
  arg 
)    do { BLOCXX_LOG_FATAL_ERROR(logger, m_poolName + ": " + arg); } while (0)

Definition at line 100 of file ThreadPool.cpp.

Variable Documentation

◆ m_currentRunnable

RunnableRef m_currentRunnable
private

Definition at line 157 of file ThreadPool.cpp.

◆ m_guard

Mutex m_guard
private

◆ m_logger

Logger m_logger
protected

Definition at line 378 of file ThreadPool.cpp.

◆ m_maxQueueSize

UInt32 m_maxQueueSize
protected

Definition at line 367 of file ThreadPool.cpp.

◆ m_maxThreads

UInt32 m_maxThreads
private

Definition at line 714 of file ThreadPool.cpp.

◆ m_poolName

String m_poolName
protected

Definition at line 379 of file ThreadPool.cpp.

◆ m_queue

std::deque<RunnableRef> m_queue
protected

Definition at line 370 of file ThreadPool.cpp.

◆ m_queueClosed

bool m_queueClosed
protected

Definition at line 371 of file ThreadPool.cpp.

◆ m_queueEmpty

Condition m_queueEmpty
protected

Definition at line 376 of file ThreadPool.cpp.

◆ m_queueLock

NonRecursiveMutex m_queueLock
protected

Definition at line 374 of file ThreadPool.cpp.

◆ m_queueNotEmpty

Condition m_queueNotEmpty
protected

Definition at line 377 of file ThreadPool.cpp.

◆ m_queueNotFull

Condition m_queueNotFull
protected

Definition at line 375 of file ThreadPool.cpp.

◆ m_shutdown

bool m_shutdown
protected

Definition at line 372 of file ThreadPool.cpp.

◆ m_thePool

DynamicSizePoolImpl* m_thePool
private

Definition at line 154 of file ThreadPool.cpp.

◆ m_threads

Array<ThreadRef> m_threads
protected

Definition at line 369 of file ThreadPool.cpp.

◆ m_workingThreads

size_t m_workingThreads
private

Definition at line 780 of file ThreadPool.cpp.