Files

30 lines
720 B
C++

// Задача 06 — потокобезопасная очередь. Заполни реализацию.
#include <cstddef>
#include <stdexcept>
class BlockingQueue {
public:
explicit BlockingQueue(size_t capacity) : cap_(capacity) {}
~BlockingQueue() = default;
void push(int v) {
(void)v;
// TODO: должен блокироваться на полной очереди и бросать std::runtime_error после close()
throw std::runtime_error("push: not implemented");
}
bool pop(int& out) {
(void)out;
return false; // TODO
}
void close() {
// TODO
}
size_t size() const { return 0; }
private:
size_t cap_;
};