Commit
2737562 (MEDIUM: stream-int: implement a very simplistic idle
connection manager) implemented an idle connection handler. In the
case where all data is drained from the server, it fails to disable
polling, resulting in a busy spinning loop.
Thanks to Sander Klein and Guillaume Castagnino for reporting this bug.
No backport is needed.
/* disable draining if we were called and have no drain function */
if (!conn->ctrl->drain)
__conn_data_stop_recv(conn);
+ else if (!(conn->flags & CO_FL_SOCK_RD_SH))
+ __conn_data_poll_recv(conn);
}
/* Callback to be used by connection I/O handlers when some activity is detected