From b7a11a0e9e5655da3198e36495d143ea03de91bb Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Wed, 6 May 2020 22:07:42 -0700 Subject: fixes #1236 Deadlock triggered on nng_close fixes #1219 nng_close occasionally hang on Windows --- src/core/aio.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/core/aio.c') diff --git a/src/core/aio.c b/src/core/aio.c index 2e38c323..ea2203f2 100644 --- a/src/core/aio.c +++ b/src/core/aio.c @@ -328,6 +328,7 @@ nni_aio_schedule(nni_aio *aio, nni_aio_cancelfn cancelfn, void *data) // Convert the relative timeout to an absolute timeout. switch (aio->a_timeout) { case NNG_DURATION_ZERO: + nni_task_abort(&aio->a_task); return (NNG_ETIMEDOUT); case NNG_DURATION_INFINITE: case NNG_DURATION_DEFAULT: @@ -341,6 +342,7 @@ nni_aio_schedule(nni_aio *aio, nni_aio_cancelfn cancelfn, void *data) nni_mtx_lock(&nni_aio_lk); if (aio->a_stop) { + nni_task_abort(&aio->a_task); nni_mtx_unlock(&nni_aio_lk); return (NNG_ECLOSED); } -- cgit v1.2.3-70-g09d2