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 3fcba26..1cc2169 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))