| 248 | } |
| 249 | |
| 250 | fn set_state(&mut self, agent: UsageLoadAgent, state: LoadProgressState) { |
| 251 | let Some(controller) = self.controller.as_ref() else { |
| 252 | return; |
| 253 | }; |
| 254 | let Ok(mut progress_state) = controller.state.lock() else { |
| 255 | return; |
| 256 | }; |
| 257 | if let Some((_, current)) = progress_state |
| 258 | .states |
| 259 | .iter_mut() |
| 260 | .find(|(current_agent, _)| *current_agent == agent) |
| 261 | { |
| 262 | *current = state; |
| 263 | } else { |
| 264 | progress_state.states.push((agent, state)); |
| 265 | } |
| 266 | } |
| 267 | } |
| 268 | |
| 269 | impl Drop for UsageLoadProgress { |