Implement Loop::setPreHandler
This commit is contained in:
+10
@@ -50,7 +50,11 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void preCb(us_loop *loop) {
|
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) {
|
static void postCb(us_loop *loop) {
|
||||||
@@ -118,6 +122,12 @@ public:
|
|||||||
loopData->postHandler = handler;
|
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 */
|
/* Defer this callback on Loop's thread of execution */
|
||||||
void defer(std::function<void()> cb) {
|
void defer(std::function<void()> cb) {
|
||||||
LoopData *loopData = (LoopData *) us_loop_ext((us_loop *) this);
|
LoopData *loopData = (LoopData *) us_loop_ext((us_loop *) this);
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ private:
|
|||||||
int currentDeferQueue = 0;
|
int currentDeferQueue = 0;
|
||||||
std::vector<std::function<void()>> deferQueues[2];
|
std::vector<std::function<void()>> deferQueues[2];
|
||||||
|
|
||||||
std::function<void(Loop *)> postHandler;
|
std::function<void(Loop *)> postHandler, preHandler;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~LoopData() {
|
~LoopData() {
|
||||||
|
|||||||
Reference in New Issue
Block a user