diff --git a/CHANGELOG.md b/CHANGELOG.md index 346d67801a..b08874b31c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.112.3] - Unreleased + +### Changes + +### Fixes +- transfer::get_backup now frees ongoing process when cancelled. #4249 + ## [1.112.2] - 2023-03-30 ### Changes @@ -10,7 +17,6 @@ ### Fixes - Do not return media from trashed messages in the "All media" view. #4247 - ## [1.112.1] - 2023-03-27 ### Changes diff --git a/src/imex/transfer.rs b/src/imex/transfer.rs index df21d71d9c..6156628a6a 100644 --- a/src/imex/transfer.rs +++ b/src/imex/transfer.rs @@ -392,12 +392,10 @@ pub async fn get_backup(context: &Context, qr: Qr) -> Result<()> { let cancel_token = context.alloc_ongoing().await?; let res = tokio::select! { biased; - res = get_backup_inner(context, qr) => { - context.free_ongoing().await; - res - } + res = get_backup_inner(context, qr) => res, _ = cancel_token.recv() => Err(format_err!("cancelled")), }; + context.free_ongoing().await; res }