clang format

This commit is contained in:
Anonymous275
2022-07-26 11:43:45 +03:00
parent b26fb43746
commit 3c96bb3959
34 changed files with 1912 additions and 1832 deletions

View File

@@ -7,55 +7,51 @@
#include <queue>
#include <semaphore>
template <class T, size_t Size>
template<class T, size_t Size>
class atomic_queue {
public:
bool try_pop(T& val) {
lock_guard guard(semaphore);
if (queue.empty())
return false;
val = queue.front();
queue.pop();
full.release();
return true;
}
public:
bool try_pop(T& val) {
lock_guard guard(semaphore);
if (queue.empty()) return false;
val = queue.front();
queue.pop();
full.release();
return true;
}
void push(const T& val) {
check_full();
lock_guard guard(semaphore);
queue.push(val);
}
void push(const T& val) {
check_full();
lock_guard guard(semaphore);
queue.push(val);
}
size_t size() {
lock_guard guard(semaphore);
return queue.size();
}
size_t size() {
lock_guard guard(semaphore);
return queue.size();
}
bool empty() {
lock_guard guard(semaphore);
return queue.empty();
}
bool empty() {
lock_guard guard(semaphore);
return queue.empty();
}
private:
void check_full() {
if (size() >= Size) {
full.acquire();
}
}
private:
void check_full() {
if (size() >= Size) {
full.acquire();
}
}
private:
struct lock_guard {
explicit lock_guard(std::binary_semaphore& lock)
: lock(lock) {
lock.acquire();
}
~lock_guard() {
lock.release();
}
private:
struct lock_guard {
explicit lock_guard(std::binary_semaphore& lock) : lock(lock) {
lock.acquire();
}
~lock_guard() { lock.release(); }
private:
std::binary_semaphore& lock;
};
std::binary_semaphore semaphore { 1 }, full { 0 };
std::queue<T> queue {};
private:
std::binary_semaphore& lock;
};
std::binary_semaphore semaphore{1}, full{0};
std::queue<T> queue{};
};