| 604 | |
| 605 | #[allow(clippy::needless_pass_by_value)] |
| 606 | fn get_response<Action: ApiAction>( |
| 607 | action: &Action, |
| 608 | api_evt: EventFd, |
| 609 | api_sender: Sender<ApiRequest>, |
| 610 | data: Action::RequestBody, |
| 611 | ) -> ApiResult<ApiResponsePayload> { |
| 612 | let (response_sender, response_receiver) = channel(); |
| 613 | |
| 614 | let request = action.request(data, response_sender); |
| 615 | |
| 616 | // Send the VM request. |
| 617 | api_sender.send(request).map_err(ApiError::RequestSend)?; |
| 618 | api_evt.write(1).map_err(ApiError::EventFdWrite)?; |
| 619 | |
| 620 | response_receiver.recv().map_err(ApiError::ResponseRecv)? |
| 621 | } |
| 622 | |
| 623 | fn get_response_body<Action: ApiAction<ResponseBody = Option<Body>>>( |
| 624 | action: &Action, |