(&mut self)
| 100 | } |
| 101 | |
| 102 | async fn wait_all_shutdown(&mut self) { |
| 103 | info!("shutdown pending guilds: {}", self.guilds.len()); |
| 104 | if self.guilds.is_empty() { |
| 105 | return; |
| 106 | } |
| 107 | |
| 108 | loop { |
| 109 | if let SchedulerAction::GuildHandler(guild_id, None) = self.next_action().await { |
| 110 | // worker finished, remove it |
| 111 | self.guilds.remove(&guild_id); |
| 112 | self.check_queue_start_worker(guild_id).await; |
| 113 | |
| 114 | info!("shutdown pending guilds: {}", self.guilds.len()); |
| 115 | |
| 116 | if self.guilds.is_empty() { |
| 117 | return; |
| 118 | } |
| 119 | } |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | async fn next_action(&mut self) -> SchedulerAction { |
| 124 | SchedulerNextActionFuture { scheduler: self }.await |
no test coverage detected