/* A simple queue protected by mutexes. * * Author: Georg Martin Reinke * SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include namespace villas { template class Queue { protected: std::queue queue; std::mutex mtx; public: void push(T p) { std::unique_lock guard(mtx); queue.push(p); } T pop() { std::unique_lock guard(mtx); T res = queue.front(); queue.pop(); return res; } bool empty() { std::unique_lock guard(mtx); return queue.empty(); } }; } // namespace villas