diff --git a/examples/serenity/voice/Cargo.toml b/examples/serenity/voice/Cargo.toml index d190a4b..f4c8b46 100644 --- a/examples/serenity/voice/Cargo.toml +++ b/examples/serenity/voice/Cargo.toml @@ -18,4 +18,4 @@ features = ["client", "standard_framework", "voice", "rustls_backend"] [dependencies.tokio] version = "1.0" -features = ["macros", "rt-multi-thread"] +features = ["macros", "rt-multi-thread", "signal"] diff --git a/examples/serenity/voice/src/main.rs b/examples/serenity/voice/src/main.rs index 9ce9345..e6f0ba7 100644 --- a/examples/serenity/voice/src/main.rs +++ b/examples/serenity/voice/src/main.rs @@ -63,7 +63,12 @@ async fn main() { .await .expect("Err creating client"); - let _ = client.start().await.map_err(|why| println!("Client ended: {:?}", why)); + tokio::spawn(async move { + let _ = client.start().await.map_err(|why| println!("Client ended: {:?}", why)); + }); + + tokio::signal::ctrl_c().await; + println!("Received Ctrl-C, shutting down."); } #[command] diff --git a/src/driver/mod.rs b/src/driver/mod.rs index cf1a021..3d78eab 100644 --- a/src/driver/mod.rs +++ b/src/driver/mod.rs @@ -308,7 +308,6 @@ impl Drop for Driver { /// Leaves the current connected voice channel, if connected to one, and /// forgets all configurations relevant to this Handler. fn drop(&mut self) { - self.leave(); let _ = self.sender.send(CoreMessage::Poison); } }