MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / abortable_accept

Method abortable_accept

vmm/src/migration_transport.rs:64–78  ·  view source on GitHub ↗

Same as [`Self::accept`], but returns `None` if the abort event was signaled.

(
        &mut self,
        abort_event: &impl AsRawFd,
    )

Source from the content-addressed store, hash-verified

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> {

Callers 1

accept_connectionsMethod · 0.80

Calls 3

wait_for_readableFunction · 0.85
contextMethod · 0.80
acceptMethod · 0.45

Tested by

no test coverage detected