]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: connection: move the cleanup of flag CO_FL_WAIT_ROOM
authorWilly Tarreau <w@1wt.eu>
Wed, 25 Oct 2017 08:28:45 +0000 (10:28 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 25 Oct 2017 13:52:41 +0000 (15:52 +0200)
This flag is only used when reading using splicing for now, and is only
set when a pipe full condition is met, so we can simplify its reset
condition in conn_refresh_polling_flags so that it's cleared at the
same time as the other ones, only when the control layer is ready.

This flag could be used more, to mark that a buffer full condition was
met with any receive method in order to simplify polling management.
This should probably be revisited after 1.8.

include/proto/connection.h

index 3fcba26577afbb5bf8e01590f5e7fc27e15547bc..1cc216929fc1ed912b1dba023a1bc8a30f0131f9 100644 (file)
@@ -171,11 +171,10 @@ void conn_update_xprt_polling(struct connection *c);
  */
 static inline void conn_refresh_polling_flags(struct connection *conn)
 {
-       conn->flags &= ~CO_FL_WAIT_ROOM;
-
        if (conn_ctrl_ready(conn)) {
-               unsigned int flags = conn->flags & ~(CO_FL_CURR_RD_ENA | CO_FL_CURR_WR_ENA);
+               unsigned int flags = conn->flags;
 
+               flags &= ~(CO_FL_CURR_RD_ENA | CO_FL_CURR_WR_ENA | CO_FL_WAIT_ROOM);
                if (fd_recv_active(conn->handle.fd))
                        flags |= CO_FL_CURR_RD_ENA;
                if (fd_send_active(conn->handle.fd))