mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-20 12:20:12 +00:00
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
This commit is contained in:
@@ -608,7 +608,7 @@ int ast_taskprocessor_alert_set_levels(struct ast_taskprocessor *tps, long low_w
|
|||||||
tps_alert_add(tps, -1);
|
tps_alert_add(tps, -1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (high_water <= tps->tps_queue_size) {
|
if (high_water < tps->tps_queue_size) {
|
||||||
/* Update water mark alert immediately */
|
/* Update water mark alert immediately */
|
||||||
tps->high_water_alert = 1;
|
tps->high_water_alert = 1;
|
||||||
tps_alert_add(tps, +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);
|
AST_LIST_INSERT_TAIL(&tps->tps_queue, t, list);
|
||||||
previous_size = tps->tps_queue_size++;
|
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) {
|
if (!tps->high_water_warned) {
|
||||||
tps->high_water_warned = 1;
|
tps->high_water_warned = 1;
|
||||||
ast_log(LOG_WARNING, "The '%s' task processor queue reached %d scheduled tasks.\n",
|
ast_log(LOG_WARNING, "The '%s' task processor queue reached %ld scheduled tasks.\n",
|
||||||
tps->name, previous_size);
|
tps->name, tps->tps_queue_size);
|
||||||
}
|
}
|
||||||
if (!tps->high_water_alert) {
|
if (!tps->high_water_alert) {
|
||||||
tps->high_water_alert = 1;
|
tps->high_water_alert = 1;
|
||||||
|
Reference in New Issue
Block a user