(
&mut self,
socket: &mut UnixStream,
)
| 3032 | } |
| 3033 | |
| 3034 | pub fn send_memory_fds( |
| 3035 | &mut self, |
| 3036 | socket: &mut UnixStream, |
| 3037 | ) -> std::result::Result<(), MigratableError> { |
| 3038 | for (slot, fd) in self |
| 3039 | .memory_manager |
| 3040 | .lock() |
| 3041 | .unwrap() |
| 3042 | .memory_slot_fds() |
| 3043 | .drain() |
| 3044 | { |
| 3045 | Request::memory_fd(std::mem::size_of_val(&slot) as u64) |
| 3046 | .write_to(socket) |
| 3047 | .map_err(|e| { |
| 3048 | MigratableError::MigrateSend(anyhow!("Error sending memory fd request: {e}")) |
| 3049 | })?; |
| 3050 | socket |
| 3051 | .send_with_fd(&slot.to_le_bytes()[..], fd) |
| 3052 | .map_err(|e| { |
| 3053 | MigratableError::MigrateSend(anyhow!("Error sending memory fd: {e}")) |
| 3054 | })?; |
| 3055 | |
| 3056 | Response::read_from(socket)?.ok_or_abandon( |
| 3057 | socket, |
| 3058 | MigratableError::MigrateSend(anyhow!("Error during memory fd migration")), |
| 3059 | )?; |
| 3060 | } |
| 3061 | |
| 3062 | Ok(()) |
| 3063 | } |
| 3064 | |
| 3065 | pub fn memory_range_table(&self) -> std::result::Result<MemoryRangeTable, MigratableError> { |
| 3066 | self.memory_manager |
no test coverage detected