mirror of
https://github.com/chatmail/core.git
synced 2026-04-21 15:36:30 +03:00
move pause to only exist on Scheduler
This commit is contained in:
committed by
link2xt
parent
52fa58a3ce
commit
2c3b2b8c2d
@@ -24,7 +24,7 @@ use crate::key::{DcKey, SignedPublicKey};
|
||||
use crate::login_param::LoginParam;
|
||||
use crate::message::{self, MessageState, MsgId};
|
||||
use crate::quota::QuotaInfo;
|
||||
use crate::scheduler::{IoPausedGuard, SchedulerState};
|
||||
use crate::scheduler::SchedulerState;
|
||||
use crate::sql::Sql;
|
||||
use crate::stock_str::StockStrings;
|
||||
use crate::timesmearing::SmearedTimestamp;
|
||||
@@ -409,16 +409,6 @@ impl Context {
|
||||
self.scheduler.restart(self).await;
|
||||
}
|
||||
|
||||
/// Pauses the IO scheduler.
|
||||
///
|
||||
/// This temporarily pauses the IO scheduler and will make sure calls to
|
||||
/// [`Context::start_io`] are no-ops while being paused.
|
||||
///
|
||||
/// It is recommended to call [`IoPausedGuard::resume`] rather than simply dropping it.
|
||||
pub(crate) async fn pause_io(&self) -> IoPausedGuard<'_> {
|
||||
self.scheduler.pause(self).await
|
||||
}
|
||||
|
||||
/// Indicate that the network likely has come back.
|
||||
pub async fn maybe_network(&self) {
|
||||
self.scheduler.maybe_network().await;
|
||||
|
||||
@@ -87,7 +87,7 @@ pub async fn imex(
|
||||
let cancel = context.alloc_ongoing().await?;
|
||||
|
||||
let res = {
|
||||
let mut guard = context.pause_io().await;
|
||||
let mut guard = context.scheduler.pause(context).await;
|
||||
let res = imex_inner(context, what, path, passphrase)
|
||||
.race(async {
|
||||
cancel.recv().await.ok();
|
||||
|
||||
@@ -87,12 +87,14 @@ impl SchedulerState {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pauses the scheduler.
|
||||
/// Pauses the IO scheduler.
|
||||
///
|
||||
/// If it is currently running the scheduler will be stopped. When
|
||||
/// [`IoPausedGuard::resume`] is called the scheduler is started again. If in the
|
||||
/// meantime [`SchedulerState::start`] or [`SchedulerState::stop`] is called resume will
|
||||
/// do the right thing.
|
||||
/// [`IoPausedGuard::resume`] is called the scheduler is started again.
|
||||
///
|
||||
/// If in the meantime [`SchedulerState::start`] or [`SchedulerState::stop`] is called
|
||||
/// resume will do the right thing and restore the scheduler to the state requested by
|
||||
/// the last call.
|
||||
pub(crate) async fn pause<'a>(&'_ self, context: &'a Context) -> IoPausedGuard<'a> {
|
||||
let mut inner = self.inner.write().await;
|
||||
inner.paused = true;
|
||||
|
||||
Reference in New Issue
Block a user