Mercurial > dovecot > core-2.2
changeset 22654:abe554f10805
director: Show in process title how many requests are being delayed.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sun, 05 Nov 2017 23:01:56 +0200 |
parents | 3ada7f87de9f |
children | c98a2d05c702 |
files | src/director/director-request.c src/director/director.h src/director/main.c |
diffstat | 3 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-request.c Mon Nov 06 10:57:03 2017 +0200 +++ b/src/director/director-request.c Sun Nov 05 23:01:56 2017 +0200 @@ -267,7 +267,7 @@ } } -bool director_request_continue(struct director_request *request) +static bool director_request_continue_real(struct director_request *request) { struct director *dir = request->dir; struct mail_host *host; @@ -331,3 +331,17 @@ director_request_free(request); return TRUE; } + +bool director_request_continue(struct director_request *request) +{ + if (request->delay_reason != REQUEST_DELAY_NONE) { + i_assert(request->dir->requests_delayed_count > 0); + request->dir->requests_delayed_count--; + } + if (!director_request_continue_real(request)) { + i_assert(request->delay_reason != REQUEST_DELAY_NONE); + request->dir->requests_delayed_count++; + return FALSE; + } + return TRUE; +}
--- a/src/director/director.h Mon Nov 06 10:57:03 2017 +0200 +++ b/src/director/director.h Sun Nov 05 23:01:56 2017 +0200 @@ -121,6 +121,8 @@ struct mail_host_list *orig_config_hosts; /* Number of users currently being moved */ unsigned int users_moving_count; + /* Number of requests currently delayed */ + unsigned int requests_delayed_count; /* these requests are waiting for directors to be in synced */ ARRAY(struct director_request *) pending_requests;
--- a/src/director/main.c Mon Nov 06 10:57:03 2017 +0200 +++ b/src/director/main.c Sun Nov 05 23:01:56 2017 +0200 @@ -57,6 +57,8 @@ str = t_str_new(64); str_printfa(str, "[%u users", director_total_users_count()); + if (director->requests_delayed_count > 0) + str_printfa(str, ", %u delayed", director->requests_delayed_count); if (director->users_moving_count > 0) str_printfa(str, ", %u moving", director->users_moving_count); str_printfa(str, ", %lu req/s",