BUG/MEDIUM: stream_interface: fix another case where the reader might not be woken up
The code review during the chase for the POST freeze uncovered another possible issue which might appear when we perform an incomplete read and want to stop because of READ_DONTWAIT or because we reached the maximum read_poll limit. Reading is disabled but SI_FL_WAIT_ROOM was not set, possibly causing some cases where a send() on the other side would not wake the reader up until another activity on the same side calls the update function which fixes its status.
This commit is contained in:
parent
6657276871
commit
34ac5665d4
@ -1037,6 +1037,7 @@ static void si_conn_recv_cb(struct connection *conn)
|
||||
}
|
||||
|
||||
if ((chn->flags & CF_READ_DONTWAIT) || --read_poll <= 0) {
|
||||
si->flags |= SI_FL_WAIT_ROOM;
|
||||
__conn_data_stop_recv(conn);
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user