Poll responses from all Data Plane cores and route them to waiting sessions. Returns the number of responses routed — callers use this for adaptive backoff (zero ⇒ idle, sleep longer; non-zero ⇒ active, stay hot).
(&self)
| 329 | /// Returns the number of responses routed — callers use this for adaptive |
| 330 | /// backoff (zero ⇒ idle, sleep longer; non-zero ⇒ active, stay hot). |
| 331 | pub fn poll_and_route_responses(&self) -> usize { |
| 332 | let responses = match self.dispatcher.lock() { |
| 333 | Ok(mut d) => d.poll_responses(), |
| 334 | Err(poisoned) => { |
| 335 | warn!("dispatcher mutex poisoned, recovering"); |
| 336 | poisoned.into_inner().poll_responses() |
| 337 | } |
| 338 | }; |
| 339 | let count = responses.len(); |
| 340 | for resp in responses { |
| 341 | if !self.tracker.complete(resp) { |
| 342 | warn!("response for unknown or cancelled request"); |
| 343 | } |
| 344 | } |
| 345 | count |
| 346 | } |
| 347 | } |