aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/aio.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/core/aio.c b/src/core/aio.c
index 87755b1b..fc7a7960 100644
--- a/src/core/aio.c
+++ b/src/core/aio.c
@@ -337,6 +337,11 @@ nni_aio_begin(nni_aio *aio)
nni_mtx_unlock(&nni_aio_lk);
return (NNG_ECANCELED);
}
+ if (aio->a_closed) {
+ aio->a_result = NNG_ECLOSED;
+ nni_mtx_unlock(&nni_aio_lk);
+ return (NNG_ECLOSED);
+ }
aio->a_result = 0;
aio->a_count = 0;
aio->a_prov_cancel = NULL;
@@ -345,14 +350,6 @@ nni_aio_begin(nni_aio *aio)
aio->a_outputs[i] = NULL;
}
nni_task_prep(aio->a_task);
- if (aio->a_closed) {
- aio->a_result = NNG_ECLOSED;
- aio->a_expire = NNI_TIME_NEVER;
- aio->a_sleep = false;
- nni_mtx_unlock(&nni_aio_lk);
- nni_task_dispatch(aio->a_task);
- return (NNG_ECLOSED);
- }
nni_mtx_unlock(&nni_aio_lk);
return (0);
}