diff options
| author | Garrett D'Amore <garrett@damore.org> | 2020-05-06 22:07:42 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2020-05-17 18:32:11 -0700 |
| commit | b7a11a0e9e5655da3198e36495d143ea03de91bb (patch) | |
| tree | 02773c4d8fd8417aee7a5908decc53422748ef10 /src/core/aio.c | |
| parent | 1a00f65db42d4c92eee28356daa08c9adf4408fe (diff) | |
| download | nng-b7a11a0e9e5655da3198e36495d143ea03de91bb.tar.gz nng-b7a11a0e9e5655da3198e36495d143ea03de91bb.tar.bz2 nng-b7a11a0e9e5655da3198e36495d143ea03de91bb.zip | |
fixes #1236 Deadlock triggered on nng_close
fixes #1219 nng_close occasionally hang on Windows
Diffstat (limited to 'src/core/aio.c')
| -rw-r--r-- | src/core/aio.c | 2 |
1 files changed, 2 insertions, 0 deletions
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); } |
