Implement Loop::setPreHandler

This commit is contained in:
Alex Hultman
2019-01-17 09:59:55 +01:00
parent 04281eeea6
commit 3c3819fe3c
2 changed files with 11 additions and 1 deletions
+10
View File
@@ -50,7 +50,11 @@ private:
}
static void preCb(us_loop *loop) {
LoopData *loopData = (LoopData *) us_loop_ext(loop);
if (loopData->preHandler) {
loopData->preHandler((Loop *) loop);
}
}
static void postCb(us_loop *loop) {
@@ -118,6 +122,12 @@ public:
loopData->postHandler = handler;
}
void setPreHandler(std::function<void(Loop *)> handler) {
LoopData *loopData = (LoopData *) us_loop_ext((us_loop *) this);
loopData->preHandler = handler;
}
/* Defer this callback on Loop's thread of execution */
void defer(std::function<void()> cb) {
LoopData *loopData = (LoopData *) us_loop_ext((us_loop *) this);
+1 -1
View File
@@ -36,7 +36,7 @@ private:
int currentDeferQueue = 0;
std::vector<std::function<void()>> deferQueues[2];
std::function<void(Loop *)> postHandler;
std::function<void(Loop *)> postHandler, preHandler;
public:
~LoopData() {