| | |
| | | /** |
| | | * encapsulate lock_free_queue, populate in userspace |
| | | */ |
| | | |
| | | #ifndef __SHM_QUEUE_H__ |
| | | #define __SHM_QUEUE_H__ |
| | | |
| | |
| | | #include "sem_util.h" |
| | | #include "shm_allocator.h" |
| | | #include "usg_common.h" |
| | | // default Queue size |
| | | // #define LOCK_FREE_Q_DEFAULT_SIZE 16 |
| | | |
| | | |
| | | template <typename ELEM_T> class SHMQueue { |
| | | |
| | |
| | | } |
| | | |
| | | template <typename ELEM_T> inline int SHMQueue<ELEM_T>::pop(ELEM_T &a_data) { |
| | | // printf("SHMQueue pop before\n"); |
| | | printf("SHMQueue pop before\n"); |
| | | int rv = queue->pop(a_data); |
| | | // printf("SHMQueue after before\n"); |
| | | printf("SHMQueue after before\n"); |
| | | return rv; |
| | | } |
| | | |
| | | template <typename ELEM_T> |
| | | inline int SHMQueue<ELEM_T>::pop_nowait(ELEM_T &a_data) { |
| | | return queue->pop_nowait(a_data); |
| | | int rv = queue->pop_nowait(a_data); |
| | | } |
| | | |
| | | template <typename ELEM_T> |