quit cm process if ipc connection to ipc server closed (#9292)

Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
21pages
2024-09-08 12:37:41 +08:00
committed by GitHub
parent c8cd564e69
commit 993862c103
4 changed files with 23 additions and 3 deletions

View File

@@ -625,7 +625,6 @@ pub async fn start_ipc<T: InvokeUiCM>(cm: ConnectionManager<T>) {
OPTION_ENABLE_FILE_TRANSFER,
&Config::get_option(OPTION_ENABLE_FILE_TRANSFER),
));
match ipc::new_listener("_cm").await {
Ok(mut incoming) => {
while let Some(result) = incoming.next().await {
@@ -647,7 +646,7 @@ pub async fn start_ipc<T: InvokeUiCM>(cm: ConnectionManager<T>) {
log::error!("Failed to start cm ipc server: {}", err);
}
}
crate::platform::quit_gui();
quit_cm();
}
#[cfg(target_os = "android")]
@@ -1042,3 +1041,11 @@ pub fn close_voice_call(id: i32) {
allow_err!(client.tx.send(Data::CloseVoiceCall("".to_owned())));
};
}
#[cfg(not(any(target_os = "android", target_os = "ios")))]
pub fn quit_cm() {
// in case of std::process::exit not work
log::info!("quit cm");
CLIENTS.write().unwrap().clear();
crate::platform::quit_gui();
}