#ifndef DISPATCHER_H_ #define DISPATCHER_H_ #include #include #include class Dispatcher { private: std::list> functions; std::mutex functions_mutex; Glib::Dispatcher dispatcher; sigc::connection connection; public: Dispatcher(); ~Dispatcher(); template void post(T &&function) { { std::unique_lock lock(functions_mutex); functions.emplace_back(std::forward(function)); } dispatcher(); } void disconnect(); }; #endif /* DISPATCHER_H_ */