AutoCatGnome/coro/GLibMainContextExecutor.h

26 lines
577 B
C++

//
// Created by selim on 09.05.2022.
//
#ifndef AUTOCAT_GNOME_GLIBMAINCONTEXTEXECUTOR_H
#define AUTOCAT_GNOME_GLIBMAINCONTEXTEXECUTOR_H
#include <folly/Executor.h>
#include <queue>
#include <mutex>
class GLibMainContextExecutor: public folly::Executor {
private:
std::queue<folly::Func> _tasks;
std::mutex _mutex;
public:
static folly::Executor::KeepAlive<GLibMainContextExecutor> instance();
~GLibMainContextExecutor() override = default;
void add(folly::Func func) override;
void runFront();
};
#endif //AUTOCAT_GNOME_GLIBMAINCONTEXTEXECUTOR_H