This is an automated email from the ASF dual-hosted git repository. kgiusti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
The following commit(s) were added to refs/heads/main by this push: new eb66aa6 DISPATCH-2236: avoid holding the delivery state lock while freeing delivery state eb66aa6 is described below commit eb66aa6592cf97aa3745d8eeaa08cec71942f2ce Author: Kenneth Giusti <kgiu...@apache.org> AuthorDate: Mon Aug 23 12:47:06 2021 -0400 DISPATCH-2236: avoid holding the delivery state lock while freeing delivery state This closes #1347 --- src/router_core/delivery.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/router_core/delivery.c b/src/router_core/delivery.c index 91d99da..8a3432f 100644 --- a/src/router_core/delivery.c +++ b/src/router_core/delivery.c @@ -1261,13 +1261,15 @@ bool qdr_delivery_move_delivery_state_CT(qdr_delivery_t *dlv, qdr_delivery_t *pe sys_mutex_lock(peer->dispo_lock); peer->disposition = dispo; - if (peer->local_state) { - // old state not consumed by I/O thread? - qd_delivery_state_free(peer->local_state); - } + qd_delivery_state_t *old = peer->local_state; peer->local_state = dstate; sys_mutex_unlock(peer->dispo_lock); + + if (old) { + // old state not consumed by I/O thread? + qd_delivery_state_free(old); + } } return !!dispo; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org