From b444d0de352972a371809cd5774a5499626ab950 Mon Sep 17 00:00:00 2001 From: wangha <68215275+wanghaEMQ@users.noreply.github.com> Date: Fri, 16 Jul 2021 21:04:42 +0800 Subject: Fix the wrong ratio when expire queue shrink. (#1470) --- src/core/aio.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/core') diff --git a/src/core/aio.c b/src/core/aio.c index 6512a78e..25c34391 100644 --- a/src/core/aio.c +++ b/src/core/aio.c @@ -519,6 +519,7 @@ nni_aio_expire_add(nni_aio *aio) eq->eq_list = new_list; eq->eq_cap *= 2; } + eq->eq_list[eq->eq_len++] = aio; if (eq->eq_len == 1) { nni_cv_wake(&eq->eq_cv); @@ -528,8 +529,9 @@ nni_aio_expire_add(nni_aio *aio) static void nni_aio_expire_rm(nni_aio *aio) { - uint32_t aio_idx = 0; - nni_aio_expire_q *eq = aio->a_expire_q; + uint32_t aio_idx = 0; + nni_aio_expire_q *eq = aio->a_expire_q; + for (aio_idx = 0; aio_idx < eq->eq_len; aio_idx++) { if (aio == eq->eq_list[aio_idx]) { eq->eq_list[aio_idx] = eq->eq_list[eq->eq_len - 1]; @@ -546,7 +548,7 @@ nni_aio_expire_rm(nni_aio *aio) } nni_free(eq->eq_list, eq->eq_cap * sizeof(nni_aio *)); eq->eq_list = new_list; - eq->eq_cap /= 2; + eq->eq_cap /= 4; } } -- cgit v1.2.3-70-g09d2