aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorwangha <68215275+wanghaEMQ@users.noreply.github.com>2021-07-16 21:04:42 +0800
committerGitHub <noreply@github.com>2021-07-16 06:04:42 -0700
commitb444d0de352972a371809cd5774a5499626ab950 (patch)
tree054355cac842a8d0abee6fdd178476cc435488b2 /src/core
parent671bca9b923355bea3dce7988057f37099a5f2f8 (diff)
downloadnng-b444d0de352972a371809cd5774a5499626ab950.tar.gz
nng-b444d0de352972a371809cd5774a5499626ab950.tar.bz2
nng-b444d0de352972a371809cd5774a5499626ab950.zip
Fix the wrong ratio when expire queue shrink. (#1470)
Diffstat (limited to 'src/core')
-rw-r--r--src/core/aio.c8
1 files changed, 5 insertions, 3 deletions
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;
}
}