diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-12-24 07:33:53 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-12-24 07:33:53 -0800 |
| commit | 7ec45b840662b81e87bf04b51c9bb6c5b43b3929 (patch) | |
| tree | 4cdb8ab10cf7174ee0431b74bccfb5827977822e /src/platform | |
| parent | aea55a9859ff394d01724d97b4fd58a75cb04fe2 (diff) | |
| download | nng-7ec45b840662b81e87bf04b51c9bb6c5b43b3929.tar.gz nng-7ec45b840662b81e87bf04b51c9bb6c5b43b3929.tar.bz2 nng-7ec45b840662b81e87bf04b51c9bb6c5b43b3929.zip | |
posix resolver: use nni_aio_defer
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/posix/posix_resolv_gai.c | 16 |
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); |
