Mountain/RunTime/Shutdown/
FlushPendingOperations.rs1
2use CommonLibrary::Error::CommonError::CommonError;
6
7use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
8
9impl ApplicationRunTime {
10 pub async fn FlushPendingOperations(&self) {
11 dev_log!("lifecycle", "[ApplicationRunTime] Flushing pending operations...");
12
13 let mut PendingRequestsGuard = self
14 .Environment
15 .ApplicationState
16 .UI
17 .PendingUserInterfaceRequest
18 .lock()
19 .unwrap_or_else(|E| {
20 dev_log!(
21 "lifecycle",
22 "error: [ApplicationRunTime] Failed to lock pending UI requests: {}",
23 E
24 );
25 E.into_inner()
26 });
27
28 for (_RequestIdentifier, Sender) in PendingRequestsGuard.drain() {
29 let _ = Sender.send(Err(CommonError::Unknown {
30 Description:"Application shutting down".to_string(),
31 }));
32 }
33
34 dev_log!("lifecycle", "[ApplicationRunTime] Pending operations flushed");
35 }
36}