aboutsummaryrefslogtreecommitdiff
path: root/embassy-net/src/raw.rs
diff options
context:
space:
mode:
authorFan Jiang <[email protected]>2024-10-20 12:29:38 -0400
committerDario Nieuwenhuis <[email protected]>2024-10-21 01:59:31 +0200
commitb4ee17fb4f1a77c26fc08e9fe9e0d343d1c059b4 (patch)
tree885de668949d20ea7f2d5471103f154108b4a223 /embassy-net/src/raw.rs
parentc9358e1f1e5d88aa0ad998c44eb2da6be73cf477 (diff)
net: Add flush for UDP and Raw sockets.
Diffstat (limited to 'embassy-net/src/raw.rs')
-rw-r--r--embassy-net/src/raw.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/embassy-net/src/raw.rs b/embassy-net/src/raw.rs
index 1098dc208..ace325a46 100644
--- a/embassy-net/src/raw.rs
+++ b/embassy-net/src/raw.rs
@@ -108,6 +108,23 @@ impl<'a> RawSocket<'a> {
108 } 108 }
109 }) 109 })
110 } 110 }
111
112 /// Flush the socket.
113 ///
114 /// This method will wait until the socket is flushed.
115 pub async fn flush(&mut self) {
116 poll_fn(move |cx| {
117 self.with_mut(|s, _| {
118 if s.send_queue() == 0 {
119 Poll::Ready(())
120 } else {
121 s.register_send_waker(cx.waker());
122 Poll::Pending
123 }
124 })
125 })
126 .await
127 }
111} 128}
112 129
113impl Drop for RawSocket<'_> { 130impl Drop for RawSocket<'_> {