diff options
-rw-r--r-- | lib/tevent/tevent.h | 4 | ||||
-rw-r--r-- | lib/tevent/tevent_req.c | 13 |
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h index 6c5df6321a..2cbd175e73 100644 --- a/lib/tevent/tevent.h +++ b/lib/tevent/tevent.h @@ -252,6 +252,10 @@ bool tevent_req_set_endtime(struct tevent_req *req, struct tevent_context *ev, struct timeval endtime); +void _tevent_req_notify_callback(struct tevent_req *req, const char *location); +#define tevent_req_notify_callback(req) \ + _tevent_req_notify_callback(req, __location__) + void _tevent_req_done(struct tevent_req *req, const char *location); #define tevent_req_done(req) \ diff --git a/lib/tevent/tevent_req.c b/lib/tevent/tevent_req.c index 01700006eb..541f93f99c 100644 --- a/lib/tevent/tevent_req.c +++ b/lib/tevent/tevent_req.c @@ -117,17 +117,22 @@ struct tevent_req *_tevent_req_create(TALLOC_CTX *mem_ctx, return req; } -static void tevent_req_finish(struct tevent_req *req, - enum tevent_req_state state, - const char *location) +void _tevent_req_notify_callback(struct tevent_req *req, const char *location) { - req->internal.state = state; req->internal.finish_location = location; if (req->async.fn != NULL) { req->async.fn(req); } } +static void tevent_req_finish(struct tevent_req *req, + enum tevent_req_state state, + const char *location) +{ + req->internal.state = state; + _tevent_req_notify_callback(req, location); +} + /** * @brief An async request has successfully finished * @param[in] req The finished request |