diff options
author | Richard Mudgett <rmudgett@digium.com> | 2016-08-02 13:53:35 -0500 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2016-08-11 12:00:08 -0500 |
commit | 4a5da6c9b42d875e342672c6031de82eb5bab6fd (patch) | |
tree | de2caaaf47f429f6f31a2cb481fe960b05351ce0 /main/taskprocessor.c | |
parent | e845ef6762bdfd404f1f3f2b5c22c66e49eaec68 (diff) |
taskprocessor.c: Tweak high water checks.
* The high water check in ast_taskprocessor_alert_set_levels() would
trigger immediately if the new high water level is zero and the queue was
empty.
* The high water check in taskprocessor_push() was off by one.
Change-Id: I687729fb4efa6a0ba38ec9c1c133c4d407bc3d5d
Diffstat (limited to 'main/taskprocessor.c')
-rw-r--r-- | main/taskprocessor.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/main/taskprocessor.c b/main/taskprocessor.c index 4a8497f11..ceb5f5c7f 100644 --- a/main/taskprocessor.c +++ b/main/taskprocessor.c @@ -608,7 +608,7 @@ int ast_taskprocessor_alert_set_levels(struct ast_taskprocessor *tps, long low_w tps_alert_add(tps, -1); } } else { - if (high_water <= tps->tps_queue_size) { + if (high_water < tps->tps_queue_size) { /* Update water mark alert immediately */ tps->high_water_alert = 1; tps_alert_add(tps, +1); @@ -883,11 +883,11 @@ static int taskprocessor_push(struct ast_taskprocessor *tps, struct tps_task *t) AST_LIST_INSERT_TAIL(&tps->tps_queue, t, list); previous_size = tps->tps_queue_size++; - if (previous_size >= tps->tps_queue_high) { + if (tps->tps_queue_high <= tps->tps_queue_size) { if (!tps->high_water_warned) { tps->high_water_warned = 1; - ast_log(LOG_WARNING, "The '%s' task processor queue reached %d scheduled tasks.\n", - tps->name, previous_size); + ast_log(LOG_WARNING, "The '%s' task processor queue reached %ld scheduled tasks.\n", + tps->name, tps->tps_queue_size); } if (!tps->high_water_alert) { tps->high_water_alert = 1; |