Repository: trafficserver Updated Branches: refs/heads/master 6ea1d767f -> 5e53b85e6
TS-4161 ProcessManager::pollLMConnection code refactoring Converted while(1) to for(;;) loop for better readability, suggested by TS-4161 previous pull request comments. This closes #519 Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5e53b85e Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5e53b85e Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5e53b85e Branch: refs/heads/master Commit: 5e53b85e63a1c91f201d6e64b03e64e420550b6d Parents: 6ea1d76 Author: Gancho Tenev <[email protected]> Authored: Mon Mar 7 16:04:22 2016 -0800 Committer: Leif Hedstrom <[email protected]> Committed: Tue Mar 8 07:35:41 2016 -0700 ---------------------------------------------------------------------- mgmt/ProcessManager.cc | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5e53b85e/mgmt/ProcessManager.cc ---------------------------------------------------------------------- diff --git a/mgmt/ProcessManager.cc b/mgmt/ProcessManager.cc index 91aecca..6ae18b1 100644 --- a/mgmt/ProcessManager.cc +++ b/mgmt/ProcessManager.cc @@ -233,8 +233,9 @@ ProcessManager::pollLMConnection() MgmtMessageHdr *mh_full; char *data_raw; - int count = MAX_MSGS_IN_A_ROW; - while (1) { + // Avoid getting stuck enqueuing too many requests in a row, limit to MAX_MSGS_IN_A_ROW. + int count; + for (count = 0; count < MAX_MSGS_IN_A_ROW; ++count) { int num; num = mgmt_read_timeout(local_manager_sockfd, 1 /* sec */, 0 /* usec */); @@ -265,19 +266,12 @@ ProcessManager::pollLMConnection() close_socket(local_manager_sockfd); mgmt_fatal(stderr, 0, "[ProcessManager::pollLMConnection] Lost Manager EOF!"); } - - // Now don't get stuck in the while loop handling too many requests in a row. - count--; - if (0 == count) { - Debug("pmgmt", "[ProcessManager::pollLMConnection] enqueued '%d' messages in a row, pausing for processing", - MAX_MSGS_IN_A_ROW); - break; - } } else if (num < 0) { /* Error */ mgmt_elog(stderr, 0, "[ProcessManager::pollLMConnection] select failed or was interrupted (%d)\n", errno); } } + Debug("pmgmt", "[ProcessManager::pollLMConnection] enqueued %d of max %d messages in a row", count, MAX_MSGS_IN_A_ROW); } /* End ProcessManager::pollLMConnection */ void
