diff options
| author | wangha <68215275+wanghaEMQ@users.noreply.github.com> | 2021-07-16 21:04:42 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-16 06:04:42 -0700 |
| commit | b444d0de352972a371809cd5774a5499626ab950 (patch) | |
| tree | 054355cac842a8d0abee6fdd178476cc435488b2 /src | |
| parent | 671bca9b923355bea3dce7988057f37099a5f2f8 (diff) | |
| download | nng-b444d0de352972a371809cd5774a5499626ab950.tar.gz nng-b444d0de352972a371809cd5774a5499626ab950.tar.bz2 nng-b444d0de352972a371809cd5774a5499626ab950.zip | |
Fix the wrong ratio when expire queue shrink. (#1470)
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/aio.c | 8 |
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; } } |
