From fceffdefba11bb924c323af0a1c15eaeb027beca Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Sun, 14 Apr 2024 05:12:42 +0200 Subject: Call io_dontwantread only once on a socket --- ot_http.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ot_http.c b/ot_http.c index cce6dc2..1d4497a 100644 --- a/ot_http.c +++ b/ot_http.c @@ -139,7 +139,10 @@ ssize_t http_sendiovecdata( const int64 sock, struct ot_workstruct *ws, int iove array_reset( &cookie->request ); /* If we came here, wait for the answer is over */ - cookie->flag &= ~STRUCT_HTTP_FLAG_WAITINGFORTASK; + if (cookie->flag & STRUCT_HTTP_FLAG_WAITINGFORTASK) { + io_dontwantread( sock ); + cookie->flag &= ~STRUCT_HTTP_FLAG_WAITINGFORTASK; + } fprintf(stderr, "http_sendiovecdata sending %d iovec entries found cookie->batch == %p\n", iovec_entries, cookie->batch); @@ -207,7 +210,6 @@ fprintf(stderr, "http_sendiovecdata adds a terminating 0 size buffer to batch\n" /* writeable sockets timeout after 10 minutes */ taia_now( &t ); taia_addsec( &t, &t, OT_CLIENT_TIMEOUT_SEND ); io_timeout( sock, t ); - io_dontwantread( sock ); fprintf (stderr, "http_sendiovecdata marks socket %lld as wantwrite\n", sock); io_wantwrite( sock ); return 0; -- cgit v1.2.3