(&self, payload: &mut Json)
| 497 | } |
| 498 | |
| 499 | fn send_request(&self, payload: &mut Json) -> FlowResult<std_mpsc::Receiver<WorkerEnvelope>> { |
| 500 | let id = self.next_request_id(); |
| 501 | set_request_id(payload, &id)?; |
| 502 | let (tx, rx) = std_mpsc::channel(); |
| 503 | self.waiters |
| 504 | .lock() |
| 505 | .map_err(|err| FlowError::Internal(format!("worker waiter lock poisoned: {err}")))? |
| 506 | .insert(id.clone(), tx); |
| 507 | if let Err(err) = self.write_command(payload) { |
| 508 | let _ = self.waiters.lock().map(|mut waiters| waiters.remove(&id)); |
| 509 | return Err(err); |
| 510 | } |
| 511 | Ok(rx) |
| 512 | } |
| 513 | |
| 514 | fn start_stream( |
| 515 | &self, |
no test coverage detected