| | |
| | | #ifndef _LOCK_FREE_QUEUE_H__ |
| | | #define _LOCK_FREE_QUEUE_H__ |
| | | #ifndef __LOCK_FREE_QUEUE_H__ |
| | | #define __LOCK_FREE_QUEUE_H__ |
| | | |
| | | #include <stdint.h> // uint32_t |
| | | #include <atomic> |
| | |
| | | #include <assert.h> // assert() |
| | | #include "mm.h" |
| | | #include "sem_util.h" |
| | | #include "logger_factory.h" |
| | | |
| | | // default Queue size |
| | | #define LOCK_FREE_Q_DEFAULT_SIZE 16 |
| | |
| | | template <typename T> class Q_TYPE> |
| | | LockFreeQueue<ELEM_T, Q_TYPE>::~LockFreeQueue() |
| | | { |
| | | std::cerr << "LockFreeQueue desctroy" << std::endl; |
| | | LoggerFactory::getLogger().debug("LockFreeQueue desctroy"); |
| | | SemUtil::remove(slots); |
| | | SemUtil::remove(items); |
| | | } |