7 #ifndef WPIUTIL_SUPPORT_CONCURRENT_QUEUE_H_ 8 #define WPIUTIL_SUPPORT_CONCURRENT_QUEUE_H_ 13 #include <condition_variable> 21 std::unique_lock<std::mutex> mlock(mutex_);
22 return queue_.empty();
25 typename std::queue<T>::size_type size()
const {
26 std::unique_lock<std::mutex> mlock(mutex_);
31 std::unique_lock<std::mutex> mlock(mutex_);
32 while (queue_.empty()) {
35 auto item = std::move(queue_.front());
41 std::unique_lock<std::mutex> mlock(mutex_);
42 while (queue_.empty()) {
45 item = queue_.front();
49 void push(
const T& item) {
50 std::unique_lock<std::mutex> mlock(mutex_);
57 std::unique_lock<std::mutex> mlock(mutex_);
58 queue_.push(std::forward<T>(item));
63 template <
typename... Args>
64 void emplace(Args&&... args) {
65 std::unique_lock<std::mutex> mlock(mutex_);
66 queue_.emplace(std::forward<Args>(args)...);
77 mutable std::mutex mutex_;
78 std::condition_variable cond_;
83 #endif // WPIUTIL_SUPPORT_CONCURRENT_QUEUE_H_ Definition: SocketError.cpp:18
Definition: ConcurrentQueue.h:18