diff options
Diffstat (limited to 'src/supplemental/http/http_client.c')
| -rw-r--r-- | src/supplemental/http/http_client.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/supplemental/http/http_client.c b/src/supplemental/http/http_client.c index a2427009..aba72715 100644 --- a/src/supplemental/http/http_client.c +++ b/src/supplemental/http/http_client.c @@ -241,11 +241,16 @@ http_connect_cancel(nni_aio *aio, int rv) void nni_http_client_connect(nni_http_client *c, nni_aio *aio) { + int rv; if (nni_aio_begin(aio) != 0) { return; } nni_mtx_lock(&c->mtx); - nni_aio_schedule(aio, http_connect_cancel, aio); + if ((rv = nni_aio_schedule(aio, http_connect_cancel, aio)) != 0) { + nni_mtx_unlock(&c->mtx); + nni_aio_finish_error(aio, rv); + return; + } nni_list_append(&c->aios, aio); if (nni_list_first(&c->aios) == aio) { http_conn_start(c); |
