(
&mut self,
paused: &AtomicBool,
paused_sync: &Barrier,
)
| 282 | |
| 283 | impl<S: VhostUserFrontendReqHandler> VhostUserEpollHandler<S> { |
| 284 | pub fn run( |
| 285 | &mut self, |
| 286 | paused: &AtomicBool, |
| 287 | paused_sync: &Barrier, |
| 288 | ) -> std::result::Result<(), EpollHelperError> { |
| 289 | let mut helper = EpollHelper::new(&self.kill_evt, &self.pause_evt)?; |
| 290 | helper.add_event_custom( |
| 291 | self.vu.lock().unwrap().socket_handle().as_raw_fd(), |
| 292 | HUP_CONNECTION_EVENT, |
| 293 | epoll::Events::EPOLLHUP, |
| 294 | )?; |
| 295 | |
| 296 | if let Some(backend_req_handler) = &self.backend_req_handler { |
| 297 | helper.add_event(backend_req_handler.as_raw_fd(), BACKEND_REQ_EVENT)?; |
| 298 | } |
| 299 | |
| 300 | helper.run(paused, paused_sync, self)?; |
| 301 | |
| 302 | Ok(()) |
| 303 | } |
| 304 | |
| 305 | fn reconnect(&mut self, helper: &mut EpollHelper) -> std::result::Result<(), EpollHelperError> { |
| 306 | let result = self.reconnect_inner(helper); |
no test coverage detected