diff --git a/crates/stdlib/src/socket.rs b/crates/stdlib/src/socket.rs index a37a4fd241d..ea5f39cb40d 100644 --- a/crates/stdlib/src/socket.rs +++ b/crates/stdlib/src/socket.rs @@ -2107,9 +2107,9 @@ mod _socket { #[pymethod] fn close(&self) -> io::Result<()> { - let sock = self.detach(); - if sock != INVALID_SOCKET as i64 { - close_inner(sock as RawSocket)?; + let sock = self.sock.write().take(); + if let Some(sock) = sock { + close_inner(into_sock_fileno(sock))?; } Ok(()) }