wasmer_wasix/journal/effector/syscalls/
epoll_create.rs1use super::*;
2
3impl JournalEffector {
4 pub fn save_epoll_create(ctx: &mut FunctionEnvMut<'_, WasiEnv>, fd: Fd) -> anyhow::Result<()> {
5 Self::save_event(ctx, JournalEntry::EpollCreateV1 { fd })
6 }
7
8 pub fn apply_epoll_create(ctx: &mut FunctionEnvMut<'_, WasiEnv>, fd: Fd) -> anyhow::Result<()> {
9 let ret_fd = crate::syscalls::epoll_create_internal(ctx, Some(fd))
10 .map_err(|err| {
11 anyhow::format_err!("journal restore error: failed to create epoll - {err}")
12 })?
13 .map_err(|err| {
14 anyhow::format_err!("journal restore error: failed to create epoll - {err}")
15 })?;
16
17 let ret = crate::syscalls::fd_renumber_internal(ctx, ret_fd, fd);
18 if !matches!(ret, Ok(Errno::Success)) {
19 bail!(
20 "journal restore error: failed renumber file descriptor after epoll create (from={}, to={}) - {}",
21 ret_fd,
22 fd,
23 ret.unwrap_or(Errno::Unknown)
24 );
25 }
26
27 Ok(())
28 }
29}