MCPcopy Create free account
hub / github.com/Botloader/botloader / shutdown

Method shutdown

components/scheduler/src/guild_handler.rs:660–687  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

658
659 #[instrument(skip(self), fields(guild_id = self.guild_id.get()))]
660 pub(crate) async fn shutdown(&mut self) {
661 info!("shutting down guild handler");
662
663 {
664 let Some(session) = &mut self.session else {
665 return;
666 };
667
668 // wait until the vm has finished its work
669 if session.send_complete().is_err() {
670 self.discard_broken_session().await;
671 return;
672 }
673 }
674
675 while let Some(session) = &mut self.session {
676 let msg = session.recv().await;
677 let events = session
678 .handle_worker_msg(msg)
679 .into_iter()
680 // we asked the vm to shut down, keep the worker claimed until
681 // the shutdown message arrives instead of returning it on idle
682 .filter(|evt| !matches!(evt, SessionEvent::VmIdle))
683 .collect();
684
685 self.handle_session_events(events).await;
686 }
687 }
688
689 async fn fetch_premium_tier(&mut self) {
690 self.premium_tier = PremiumTierState::Unknown;

Callers 2

runMethod · 0.80
run_iterationMethod · 0.80

Calls 5

send_completeMethod · 0.80
recvMethod · 0.80
handle_worker_msgMethod · 0.80
handle_session_eventsMethod · 0.80

Tested by

no test coverage detected