mirror of
https://github.com/chatmail/core.git
synced 2026-05-09 01:46:30 +03:00
feat: migrations: Use tools::Time to measure time for logging
There's a comment in `tools` that tells to use `tools::Time` instead of `Instant` because on Android the latter doesn't advance in the deep sleep mode. The only place except `migrations` where `Instant` is used is tests, but we don't run CI on Android. It's unlikely that Delta Chat goes to the deep sleep while executing migrations, but still possible, so let's use `tools::Time` as everywhere else.
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use std::collections::BTreeSet;
|
use std::collections::BTreeSet;
|
||||||
use std::time::{Duration, Instant};
|
use std::time::Duration;
|
||||||
|
|
||||||
use anyhow::{Context as _, Result, ensure};
|
use anyhow::{Context as _, Result, ensure};
|
||||||
use deltachat_contact_tools::EmailAddress;
|
use deltachat_contact_tools::EmailAddress;
|
||||||
@@ -1237,13 +1237,13 @@ CREATE INDEX gossip_timestamp_index ON gossip_timestamp (chat_id, fingerprint);
|
|||||||
|
|
||||||
inc_and_check(&mut migration_version, 132)?;
|
inc_and_check(&mut migration_version, 132)?;
|
||||||
if dbversion < migration_version {
|
if dbversion < migration_version {
|
||||||
let start = Instant::now();
|
let start = Time::now();
|
||||||
sql.execute_migration_transaction(|t| migrate_key_contacts(context, t), migration_version)
|
sql.execute_migration_transaction(|t| migrate_key_contacts(context, t), migration_version)
|
||||||
.await?;
|
.await?;
|
||||||
info!(
|
info!(
|
||||||
context,
|
context,
|
||||||
"key-contacts migration took {:?} in total.",
|
"key-contacts migration took {:?} in total.",
|
||||||
start.elapsed()
|
time_elapsed(&start),
|
||||||
);
|
);
|
||||||
// Schedule `msgs_to_key_contacts()`.
|
// Schedule `msgs_to_key_contacts()`.
|
||||||
context
|
context
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ use std::str::from_utf8;
|
|||||||
// `Instant` may use `libc::clock_gettime(CLOCK_MONOTONIC)`, e.g. on Android, and does not advance
|
// `Instant` may use `libc::clock_gettime(CLOCK_MONOTONIC)`, e.g. on Android, and does not advance
|
||||||
// while being in deep sleep mode, we use `SystemTime` instead, but add an alias for it to document
|
// while being in deep sleep mode, we use `SystemTime` instead, but add an alias for it to document
|
||||||
// why `Instant` isn't used in those places. Also this can help to switch to another clock impl if
|
// why `Instant` isn't used in those places. Also this can help to switch to another clock impl if
|
||||||
// we find any.
|
// we find any. Another reason is that `Instant` may reintroduce panics in the future versions:
|
||||||
|
// https://doc.rust-lang.org/1.87.0/std/time/struct.Instant.html#method.elapsed.
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
pub use std::time::SystemTime as Time;
|
pub use std::time::SystemTime as Time;
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
|
|||||||
Reference in New Issue
Block a user