30 lines
720 B
C++
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_;
|
|
};
|