Mountain/RunTime/Shutdown/
FlushPendingOperations.rs1use CommonLibrary::Error::CommonError::CommonError;
5
6use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
7
8impl ApplicationRunTime {
9 pub async fn FlushPendingOperations(&self) {
10 dev_log!("lifecycle", "[ApplicationRunTime] Flushing pending operations...");
11
12 let mut PendingRequestsGuard = self
13 .Environment
14 .ApplicationState
15 .UI
16 .PendingUserInterfaceRequest
17 .lock()
18 .unwrap_or_else(|E| {
19 dev_log!(
20 "lifecycle",
21 "error: [ApplicationRunTime] Failed to lock pending UI requests: {}",
22 E
23 );
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}