From: Arran Cudbard-Bell Date: Tue, 6 Apr 2021 11:57:07 +0000 (+0100) Subject: Always need to stop time tracking X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6afd64c1b905e8373e08b01936754fa90107b482;p=thirdparty%2Ffreeradius-server.git Always need to stop time tracking --- diff --git a/src/lib/io/worker.c b/src/lib/io/worker.c index 607b0a7a11f..93fc77f7ac0 100644 --- a/src/lib/io/worker.c +++ b/src/lib/io/worker.c @@ -564,11 +564,6 @@ static void worker_send_reply(fr_worker_t *worker, request_t *request, size_t si (void) fr_message_alloc(ms, &reply->m, slen); } - /* - * The request is done. Track that. - */ - worker_request_time_tracking_end(worker, request, now); - /* * Fill in the rest of the fields in the channel message. * @@ -943,6 +938,7 @@ static void _worker_request_internal_init(request_t *request, void *uctx) static void _worker_request_done_external(request_t *request, UNUSED rlm_rcode_t rcode, void *uctx) { fr_worker_t *worker = talloc_get_type_abort(uctx, fr_worker_t); + fr_time_t now = fr_time(); /* * All external requests MUST have a listener. @@ -977,6 +973,11 @@ static void _worker_request_done_external(request_t *request, UNUSED rlm_rcode_t "Request %s stack depth %u > 0", request->name, unlang_interpret_stack_depth(request)); RDEBUG("Done request"); + /* + * The request is done. Track that. + */ + worker_request_time_tracking_end(worker, request, now); + /* * These conditions are true when the server is * exiting and we're stopping all the requests. @@ -989,7 +990,7 @@ static void _worker_request_done_external(request_t *request, UNUSED rlm_rcode_t return; } - worker_send_reply(worker, request, request->master_state == REQUEST_STOP_PROCESSING ? 1 : 0, fr_time()); + worker_send_reply(worker, request, request->master_state == REQUEST_STOP_PROCESSING ? 1 : 0, now); talloc_free(request); }