mirror of
https://github.com/chatmail/core.git
synced 2026-05-18 22:36:29 +03:00
Make Accounts::background_fetch() not return Result
This commit is contained in:
@@ -4915,19 +4915,11 @@ pub unsafe extern "C" fn dc_accounts_background_fetch(
|
|||||||
let accounts = &*accounts;
|
let accounts = &*accounts;
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let accounts = accounts.read().await;
|
let accounts = accounts.read().await;
|
||||||
match accounts
|
accounts
|
||||||
.background_fetch(Duration::from_secs(timeout_in_seconds))
|
.background_fetch(Duration::from_secs(timeout_in_seconds))
|
||||||
.await
|
.await;
|
||||||
{
|
});
|
||||||
Ok(()) => 1,
|
1
|
||||||
Err(err) => {
|
|
||||||
accounts.emit_event(EventType::Error(format!(
|
|
||||||
"Failed to do background fetch: {err:#}"
|
|
||||||
)));
|
|
||||||
0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
|||||||
@@ -233,8 +233,7 @@ impl CommandApi {
|
|||||||
|
|
||||||
/// Performs a background fetch for all accounts in parallel with a timeout.
|
/// Performs a background fetch for all accounts in parallel with a timeout.
|
||||||
///
|
///
|
||||||
/// The `AccountsBackgroundFetchDone` event is emitted at the end
|
/// The `AccountsBackgroundFetchDone` event is emitted at the end even in case of timeout.
|
||||||
/// if the method returns sucessfully, even in case of timeout.
|
|
||||||
/// Process all events until you get this one and you can safely return to the background
|
/// Process all events until you get this one and you can safely return to the background
|
||||||
/// without forgetting to create notifications caused by timing race conditions.
|
/// without forgetting to create notifications caused by timing race conditions.
|
||||||
async fn accounts_background_fetch(&self, timeout_in_seconds: f64) -> Result<()> {
|
async fn accounts_background_fetch(&self, timeout_in_seconds: f64) -> Result<()> {
|
||||||
@@ -242,7 +241,7 @@ impl CommandApi {
|
|||||||
.write()
|
.write()
|
||||||
.await
|
.await
|
||||||
.background_fetch(std::time::Duration::from_secs_f64(timeout_in_seconds))
|
.background_fetch(std::time::Duration::from_secs_f64(timeout_in_seconds))
|
||||||
.await?;
|
.await;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -317,9 +317,7 @@ impl Accounts {
|
|||||||
/// The `AccountsBackgroundFetchDone` event is emitted at the end,
|
/// The `AccountsBackgroundFetchDone` event is emitted at the end,
|
||||||
/// process all events until you get this one and you can safely return to the background
|
/// process all events until you get this one and you can safely return to the background
|
||||||
/// without forgetting to create notifications caused by timing race conditions.
|
/// without forgetting to create notifications caused by timing race conditions.
|
||||||
///
|
pub async fn background_fetch(&self, timeout: std::time::Duration) {
|
||||||
/// On error no `AccountsBackgroundFetchDone` event is emitted.
|
|
||||||
pub async fn background_fetch(&self, timeout: std::time::Duration) -> Result<()> {
|
|
||||||
if let Err(_err) =
|
if let Err(_err) =
|
||||||
tokio::time::timeout(timeout, self.background_fetch_without_timeout()).await
|
tokio::time::timeout(timeout, self.background_fetch_without_timeout()).await
|
||||||
{
|
{
|
||||||
@@ -328,7 +326,6 @@ impl Accounts {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
self.emit_event(EventType::AccountsBackgroundFetchDone);
|
self.emit_event(EventType::AccountsBackgroundFetchDone);
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Emits a single event.
|
/// Emits a single event.
|
||||||
|
|||||||
Reference in New Issue
Block a user