diff options
Diffstat (limited to 'src/platform/windows/win_resolv.c')
| -rw-r--r-- | src/platform/windows/win_resolv.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/platform/windows/win_resolv.c b/src/platform/windows/win_resolv.c index 44d00c34..a01dc123 100644 --- a/src/platform/windows/win_resolv.c +++ b/src/platform/windows/win_resolv.c @@ -30,13 +30,13 @@ static nni_mtx nni_win_resolv_mtx; typedef struct nni_win_resolv_item nni_win_resolv_item; struct nni_win_resolv_item { - int family; - int passive; - const char * name; - const char * serv; - int proto; - nni_aio * aio; - nni_taskq_ent tqe; + int family; + int passive; + const char *name; + const char *serv; + int proto; + nni_aio * aio; + nni_task task; }; static void @@ -50,7 +50,7 @@ nni_win_resolv_finish(nni_win_resolv_item *item, int rv) } static void -nni_win_resolv_cancel(nni_aio *aio) +nni_win_resolv_cancel(nni_aio *aio, int rv) { nni_win_resolv_item *item; @@ -61,8 +61,9 @@ nni_win_resolv_cancel(nni_aio *aio) } aio->a_prov_data = NULL; nni_mtx_unlock(&nni_win_resolv_mtx); - nni_taskq_cancel(nni_win_resolv_tq, &item->tqe); + nni_task_cancel(&item->task); NNI_FREE_STRUCT(item); + nni_aio_finish_error(aio, rv); } static int @@ -209,7 +210,8 @@ nni_win_resolv_ip(const char *host, const char *serv, int passive, int family, return; } - nni_taskq_ent_init(&item->tqe, nni_win_resolv_task, item); + nni_task_init( + nni_win_resolv_tq, &item->task, nni_win_resolv_task, item); switch (family) { case NNG_AF_INET: @@ -236,11 +238,7 @@ nni_win_resolv_ip(const char *host, const char *serv, int passive, int family, NNI_FREE_STRUCT(item); return; } - if ((rv = nni_taskq_dispatch(nni_win_resolv_tq, &item->tqe)) != 0) { - nni_win_resolv_finish(item, rv); - nni_mtx_unlock(&nni_win_resolv_mtx); - return; - } + nni_task_dispatch(&item->task); nni_mtx_unlock(&nni_win_resolv_mtx); } |
