wangzhengquan
2021-03-13 7a12bed7a2550d037e6e869c1ed0ce115098dbb2
src/queue/lock_free_queue.h
@@ -88,9 +88,9 @@
  sem_t slots;
  sem_t items;
  // time_t createTime;
  // time_t closeTime;
  // int status;
  time_t createTime;
  time_t closeTime;
  int status;
public:
@@ -101,7 +101,8 @@
  /// template
  ~LockFreeQueue();
  // inline void  close();
  inline void  close();
  inline bool isClosed();
  // std::atomic_uint reference;
  /// @brief constructor of the class
@@ -129,17 +130,17 @@
  
  // time_t getCreateTime() {
  //   return createTime;
  // }
  time_t getCreateTime() {
    return createTime;
  }
  // time_t getCloseTime() {
  //   return closeTime;
  // }
  time_t getCloseTime() {
    return closeTime;
  }
  // int getStatus() {
  //   return status;
  // }
  int getStatus() {
    return status;
  }
  /// @brief push an element at the tail of the queue
  /// @param the element to insert in the queue
@@ -182,20 +183,28 @@
  if (sem_init(&items, 1, 0) == -1)
    err_exit(errno, "LockFreeQueue sem_init");
  
  // createTime = time(NULL);
  // status = LOCK_FREE_Q_ST_OPENED;
  createTime = time(NULL);
  status = LOCK_FREE_Q_ST_OPENED;
}
// template<
//   typename ELEM_T,
//   typename Allocator,
//   template<typename T, typename AT> class Q_TYPE>
// inline void LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::close() {
//   // status = LOCK_FREE_Q_ST_CLOSED;
//   // closeTime = time(NULL);
// }
template<
  typename ELEM_T,
  typename Allocator,
  template<typename T, typename AT> class Q_TYPE>
inline void LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::close() {
  status = LOCK_FREE_Q_ST_CLOSED;
  closeTime = time(NULL);
}
template<
  typename ELEM_T,
  typename Allocator,
  template<typename T, typename AT> class Q_TYPE>
inline bool LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::isClosed() {
  return status == LOCK_FREE_Q_ST_CLOSED;
}
template<