diff --git a/nvim-core/src/lib.rs b/nvim-core/src/lib.rs index 2ee1ed8..04696aa 100644 --- a/nvim-core/src/lib.rs +++ b/nvim-core/src/lib.rs @@ -237,6 +237,9 @@ async fn get_nvim_connection() -> Result, String> { let mut interval = tokio::time::interval(tokio::time::Duration::from_secs(10)); loop { interval.tick().await; + if Arc::strong_count(&pending_clone3) <= 1 { + break; // Socket closed and other tasks finished, no need to keep cleaning up + } pending_clone3.lock().await.retain(|_, sender| !sender.is_closed()); } });