You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rx read hangs because of redundant/excessive try_recv() (hyperium#219)
If self.remaining_data is 0, recv_data() calls poll_next() which
will do a try_recv() and bring in and decode the frame. And right
after that we end up doing poll_data() which will again do a try_recv
and this time it can end up hanging if the other end has not sent
any more data. poll_data clearly checks if self.remaining_data is
NON-ZERO at the top of that API, so before calling try_recv() it
KNOWS that there is data to be read. So even if try_recv() says
pending, it can/should go ahead and pull in the existing data.
0 commit comments