aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-12-24 07:33:53 -0800
committerGarrett D'Amore <garrett@damore.org>2024-12-24 07:33:53 -0800
commit7ec45b840662b81e87bf04b51c9bb6c5b43b3929 (patch)
tree4cdb8ab10cf7174ee0431b74bccfb5827977822e
parentaea55a9859ff394d01724d97b4fd58a75cb04fe2 (diff)
downloadnng-7ec45b840662b81e87bf04b51c9bb6c5b43b3929.tar.gz
nng-7ec45b840662b81e87bf04b51c9bb6c5b43b3929.tar.bz2
nng-7ec45b840662b81e87bf04b51c9bb6c5b43b3929.zip
posix resolver: use nni_aio_defer
-rw-r--r--src/platform/posix/posix_resolv_gai.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/platform/posix/posix_resolv_gai.c b/src/platform/posix/posix_resolv_gai.c
index 4dda0c38..c3336f13 100644
--- a/src/platform/posix/posix_resolv_gai.c
+++ b/src/platform/posix/posix_resolv_gai.c
@@ -230,7 +230,6 @@ nni_resolv_ip(const char *host, uint16_t port, int af, bool passive,
{
resolv_item *item;
sa_family_t fam;
- int rv;
if (nni_aio_begin(aio) != 0) {
return;
@@ -283,16 +282,17 @@ nni_resolv_ip(const char *host, uint16_t port, int af, bool passive,
item->sa = sa;
nni_mtx_lock(&resolv_mtx);
- if (resolv_fini) {
- rv = NNG_ECLOSED;
- } else {
- nni_aio_set_prov_data(aio, item);
- rv = nni_aio_schedule(aio, resolv_cancel, item);
+ nni_aio_set_prov_data(aio, item);
+ if (!nni_aio_defer(aio, resolv_cancel, item)) {
+ nni_mtx_unlock(&resolv_mtx);
+ resolv_free_item(item);
+ return;
}
- if (rv != 0) {
+
+ if (resolv_fini) {
nni_mtx_unlock(&resolv_mtx);
resolv_free_item(item);
- nni_aio_finish_error(aio, rv);
+ nni_aio_finish_error(aio, NNG_ECLOSED);
return;
}
nni_list_append(&resolv_aios, aio);