| | |
| | | /** |
| | | * encapsulate array_lock_free_queue, add semphore. populate in kernal space. |
| | | */ |
| | | #ifndef __LOCK_FREE_QUEUE_H__ |
| | | #define __LOCK_FREE_QUEUE_H__ |
| | | |
| | |
| | | int LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::pop(ELEM_T &a_data) |
| | | { |
| | | |
| | | // LoggerFactory::getLogger()->debug("==================LockFreeQueue pop before\n"); |
| | | LoggerFactory::getLogger()->debug("==================LockFreeQueue pop before\n"); |
| | | if (sem_wait(&items) == -1) { |
| | | LoggerFactory::getLogger()->error(errno, "LockFreeQueue pop"); |
| | | return errno; |
| | |
| | | |
| | | if (m_qImpl.pop(a_data)) { |
| | | sem_post(&slots); |
| | | // LoggerFactory::getLogger()->debug("==================LockFreeQueue pop after\n"); |
| | | LoggerFactory::getLogger()->debug("==================LockFreeQueue pop after\n"); |
| | | return 0; |
| | | } |
| | | return -1; |