Same as [`Self::accept`], but returns `None` if the abort event was signaled.
(
&mut self,
abort_event: &impl AsRawFd,
)
| 62 | |
| 63 | /// Same as [`Self::accept`], but returns `None` if the abort event was signaled. |
| 64 | fn abortable_accept( |
| 65 | &mut self, |
| 66 | abort_event: &impl AsRawFd, |
| 67 | ) -> Result<Option<SocketStream>, MigratableError> { |
| 68 | if wait_for_readable(&self, abort_event) |
| 69 | .context("Error while waiting for socket to become readable") |
| 70 | .map_err(MigratableError::MigrateReceive)? |
| 71 | { |
| 72 | // The listener is readable; accept the connection. |
| 73 | Ok(Some(self.accept()?)) |
| 74 | } else { |
| 75 | // The abort event was signaled before any connection arrived. |
| 76 | Ok(None) |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | /// Tries to clone a [`ReceiveListener`]. |
| 81 | pub(crate) fn try_clone(&self) -> Result<Self, MigratableError> { |
no test coverage detected