cpputil/include/log_queue.h

31 lines
491 B
C++

#ifndef LOG_QUEUE_H
#define LOG_QUEUE_H
#include <queue>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <atomic>
class log_queue
{
private:
std::mutex _mutex;
std::condition_variable _cond;
std::queue<std::function<void()>> _queue;
std::atomic<bool> _working;
std::thread _worker;
private:
void worker_func();
public:
log_queue();
~log_queue();
void add_log(const std::function<void()>& logFunc);
};
#endif /* LOG_QUEUE_H */