wasmer_wasix/syscalls/journal/actions/
fd_renumber.rs

1use super::*;
2
3impl JournalSyscallPlayer<'_, '_> {
4    #[allow(clippy::result_large_err)]
5    pub(crate) unsafe fn action_fd_renumber(
6        &mut self,
7        old_fd: u32,
8        new_fd: u32,
9    ) -> Result<(), WasiRuntimeError> {
10        tracing::trace!(%old_fd, %new_fd, "Replay journal - FdRenumber");
11        self.real_fd.insert(new_fd);
12        if old_fd != new_fd {
13            self.stdout_fds.remove(&new_fd);
14            self.stderr_fds.remove(&new_fd);
15        }
16        if self.stdout_fds.remove(&old_fd) {
17            self.stdout_fds.insert(new_fd);
18        }
19        if self.stderr_fds.remove(&old_fd) {
20            self.stderr_fds.insert(new_fd);
21        }
22        JournalEffector::apply_fd_renumber(&mut self.ctx, old_fd, new_fd)
23            .map_err(anyhow_err_to_runtime_err)?;
24        Ok(())
25    }
26}