Wake reader future when we fail to flush socket buffer
[rust-lightning] / lightning-net-tokio / src / lib.rs
index cee7c5c1b982882244cdb33a5d82d7abb0c8eadc..fc7b260e41bf1c6d54d8df15436cf865f64629ed 100644 (file)
@@ -465,6 +465,9 @@ impl peer_handler::SocketDescriptor for SocketDescriptor {
                                        // pause read given we're now waiting on the remote end to ACK (and in
                                        // accordance with the send_data() docs).
                                        us.read_paused = true;
+                                       // Further, to avoid any current pending read causing a `read_event` call, wake
+                                       // up the read_waker and restart its loop.
+                                       let _ = us.read_waker.try_send(());
                                        return written_len;
                                },
                        }