diff options
Diffstat (limited to 'src/supplemental/http/http_conn.c')
| -rw-r--r-- | src/supplemental/http/http_conn.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/supplemental/http/http_conn.c b/src/supplemental/http/http_conn.c index 0de40e10..f3b16370 100644 --- a/src/supplemental/http/http_conn.c +++ b/src/supplemental/http/http_conn.c @@ -365,6 +365,8 @@ http_rd_cancel(nni_aio *aio, int rv) static void http_rd_submit(nni_http_conn *conn, nni_aio *aio) { + int rv; + if (nni_aio_begin(aio) != 0) { return; } @@ -372,7 +374,10 @@ http_rd_submit(nni_http_conn *conn, nni_aio *aio) nni_aio_finish_error(aio, NNG_ECLOSED); return; } - nni_aio_schedule(aio, http_rd_cancel, conn); + if ((rv = nni_aio_schedule(aio, http_rd_cancel, conn)) != 0) { + nni_aio_finish_error(aio, rv); + return; + } nni_list_append(&conn->rdq, aio); if (conn->rd_uaio == NULL) { http_rd_start(conn); @@ -479,6 +484,8 @@ http_wr_cancel(nni_aio *aio, int rv) static void http_wr_submit(nni_http_conn *conn, nni_aio *aio) { + int rv; + if (nni_aio_begin(aio) != 0) { return; } @@ -486,8 +493,12 @@ http_wr_submit(nni_http_conn *conn, nni_aio *aio) nni_aio_finish_error(aio, NNG_ECLOSED); return; } + if ((rv = nni_aio_schedule(aio, http_wr_cancel, conn)) != 0) { + nni_aio_finish_error(aio, rv); + return; + } nni_list_append(&conn->wrq, aio); - nni_aio_schedule(aio, http_wr_cancel, conn); + if (conn->wr_uaio == NULL) { http_wr_start(conn); } |
