From 9eeddee734b696e11eba784398e5b065c991a68c Mon Sep 17 00:00:00 2001 From: Simion George <george.simion204@gmail.com> Date: Wed, 8 Jan 2025 20:39:38 +0200 Subject: [PATCH] NOW --- src/aws.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/aws.c b/src/aws.c index 18ad8ee..e23302e 100644 --- a/src/aws.c +++ b/src/aws.c @@ -140,7 +140,13 @@ void connection_start_async_io(struct connection *conn) /* AIO notify us when done */ io_set_eventfd(&conn->iocb, conn->eventfd); - io_submit(conn->ctx, 1, conn->piocb); + int ret = io_submit(conn->ctx, 1, conn->piocb); + + if (ret < 0) { + connection_remove(conn); + return; + } + conn->state = STATE_ASYNC_ONGOING; } @@ -494,12 +500,12 @@ void handle_output(struct connection *conn) } else if (ret == 0) { /* done */ - if (conn->file_pos < conn->file_size) - connection_start_async_io(conn); - else - connection_remove(conn); + connection_remove(conn); } else { + if (conn->state == STATE_ASYNC_ONGOING) + return; + w_epoll_update_ptr_out(epollfd, conn->sockfd, conn); } -- GitLab