From 3adcf3762574913d13bcae63194846d4840b946e Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Fri, 8 Jul 2022 17:56:33 +0800 Subject: [PATCH] Revert "Ensure that pending data is sent when closing sockets" This reverts commit 73082d116f639e5985451d157a5f23e72531f2b4. --- artiq/firmware/runtime/sched.rs | 49 +++------------------------------ 1 file changed, 4 insertions(+), 45 deletions(-) diff --git a/artiq/firmware/runtime/sched.rs b/artiq/firmware/runtime/sched.rs index fc3c7ac04..a5903c2d1 100644 --- a/artiq/firmware/runtime/sched.rs +++ b/artiq/firmware/runtime/sched.rs @@ -250,26 +250,14 @@ impl<'a> Io<'a> { }) } - pub fn inner_until bool>( - &self, - timeout: Option, - mut f: F - ) -> Result<(), Error> { + pub fn until bool>(&self, mut f: F) -> Result<(), Error> { let f = unsafe { mem::transmute::<&mut dyn FnMut() -> bool, *mut dyn FnMut() -> bool>(&mut f) }; self.suspend(WaitRequest { - timeout, - event: Some(f), + timeout: None, + event: Some(f) }) } - pub fn until bool>(&self, f: F) -> Result<(), Error> { - self.inner_until(None, f) - } - - pub fn until_with_timeout bool>(&self, timeout: u64, f: F) -> Result<(), Error> { - self.inner_until(Some(timeout), f) - } - pub fn until_ok(&self, mut f: F) -> Result where F: FnMut() -> result::Result { @@ -325,15 +313,7 @@ macro_rules! until { let $var = network.get_socket::<$ty>(handle); $cond }) - }); - ($socket:expr, $ty:ty, timeout=$timeout:expr, |$var:ident| $cond:expr) => ({ - let (network, handle) = ($socket.io.network.clone(), $socket.handle); - $socket.io.until_with_timeout($timeout, move || { - let mut network = network.borrow_mut(); - let $var = network.get_socket::<$ty>(handle); - $cond - }) - }); + }) } type TcpSocketBuffer = ::smoltcp::socket::TcpSocketBuffer<'static>; @@ -587,27 +567,6 @@ impl<'a> Write for TcpStream<'a> { impl<'a> Drop for TcpStream<'a> { fn drop(&mut self) { self.with_lower(|s| s.close()); - let result = until!( - self, TcpSocketLower, timeout=clock::get_ms() + 1000, |s| !s.is_active() - ); - let unsent_bytes = self.with_lower(|s| s.send_queue()); - match result{ - Ok(()) => { - if unsent_bytes != 0 { - // This is normal if we received a reset whilst sending - debug!("Dropping socket with {} bytes unsent", unsent_bytes) - } - } - Err(Error::TimedOut) => { - warn!( - "Timed out whilst waiting for socket to close during drop, with {} unsent bytes", - unsent_bytes - ); - } - Err(e) => { - error!("Unexpected error whilst waiting for socket to close during drop: {:?}", e) - } - } self.io.network.borrow_mut().remove_socket(self.handle); } }