summaryrefslogtreecommitdiff
path: root/src/cam/event_loop.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cam/event_loop.h')
-rw-r--r--src/cam/event_loop.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cam/event_loop.h b/src/cam/event_loop.h
index b1c6bd10..408073c5 100644
--- a/src/cam/event_loop.h
+++ b/src/cam/event_loop.h
@@ -8,6 +8,9 @@
#define __CAM_EVENT_LOOP_H__
#include <atomic>
+#include <functional>
+#include <list>
+#include <mutex>
struct event_base;
@@ -22,6 +25,8 @@ public:
int exec();
void exit(int code = 0);
+ void callLater(const std::function<void()> &func);
+
private:
static EventLoop *instance_;
@@ -29,7 +34,11 @@ private:
std::atomic<bool> exit_;
int exitCode_;
+ std::list<std::function<void()>> calls_;
+ std::mutex lock_;
+
void interrupt();
+ void dispatchCalls();
};
#endif /* __CAM_EVENT_LOOP_H__ */