7 #ifndef WPIUTIL_WPI_CONCURRENTQUEUE_H_
8 #define WPIUTIL_WPI_CONCURRENTQUEUE_H_
14 #include "wpi/condition_variable.h"
15 #include "wpi/mutex.h"
23 std::unique_lock<wpi::mutex> mlock(mutex_);
24 return queue_.empty();
27 typename std::queue<T>::size_type size()
const {
28 std::unique_lock<wpi::mutex> mlock(mutex_);
33 std::unique_lock<wpi::mutex> mlock(mutex_);
34 while (queue_.empty()) {
37 auto item = std::move(queue_.front());
43 std::unique_lock<wpi::mutex> mlock(mutex_);
44 while (queue_.empty()) {
47 item = queue_.front();
51 void push(
const T& item) {
52 std::unique_lock<wpi::mutex> mlock(mutex_);
59 std::unique_lock<wpi::mutex> mlock(mutex_);
60 queue_.push(std::forward<T>(item));
65 template <
typename... Args>
66 void emplace(Args&&... args) {
67 std::unique_lock<wpi::mutex> mlock(mutex_);
68 queue_.emplace(std::forward<Args>(args)...);
79 mutable wpi::mutex mutex_;
80 wpi::condition_variable cond_;
85 #endif // WPIUTIL_WPI_CONCURRENTQUEUE_H_
namespace to hold default to_json function
Definition: SmallString.h:21
Definition: ConcurrentQueue.h:20