diff options
Diffstat (limited to 'src/supplemental/websocket/websocket.c')
| -rw-r--r-- | src/supplemental/websocket/websocket.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/supplemental/websocket/websocket.c b/src/supplemental/websocket/websocket.c index 9a3f5519..6d4d3c13 100644 --- a/src/supplemental/websocket/websocket.c +++ b/src/supplemental/websocket/websocket.c @@ -407,14 +407,15 @@ ws_close_cb(void *arg) nni_ws *ws = arg; ws_msg *wm; + nni_aio_close(ws->txaio); + nni_aio_close(ws->rxaio); + nni_aio_close(ws->httpaio); + // Either we sent a close frame, or we didn't. Either way, // we are done, and its time to abort everything else. nni_mtx_lock(&ws->mtx); nni_http_conn_close(ws->http); - nni_aio_abort(ws->txaio, NNG_ECLOSED); - nni_aio_abort(ws->rxaio, NNG_ECLOSED); - nni_aio_abort(ws->httpaio, NNG_ECLOSED); // This list (receive) should be empty. while ((wm = nni_list_first(&ws->rxmsgs)) != NULL) { @@ -464,8 +465,8 @@ ws_close(nni_ws *ws, uint16_t code) // pending connect request. if (!ws->closed) { // ABORT connection negotiation. - nni_aio_abort(ws->connaio, NNG_ECLOSED); - nni_aio_abort(ws->httpaio, NNG_ECLOSED); + nni_aio_close(ws->connaio); + nni_aio_close(ws->httpaio); ws_send_close(ws, code); } |
