Program Listing for File queue.hpp#

↰ Return to documentation for file (source/pele/queue.hpp)

#ifndef _PELE_QUEUE_H_
#define _PELE_QUEUE_H_

#include <mutex>
#include <queue>

template <typename T>
class SafePushQueue : public std::queue<T> {
 protected:
  std::mutex m_mutex;

 public:
  void push(const T &item) {
    std::unique_lock<std::mutex> mlock(m_mutex);
    std::queue<T>::push(item);
    mlock.unlock();
  }
};

#endif  // #ifndef _PELE_QUEUE_H_