wasmer_wasix/syscalls/journal/
maybe_snapshot.rs1use super::*;
2
3#[allow(clippy::extra_unused_type_parameters)]
4#[cfg(not(feature = "journal"))]
5pub fn maybe_snapshot<M: MemorySize>(
6 ctx: FunctionEnvMut<'_, WasiEnv>,
7) -> WasiResult<FunctionEnvMut<'_, WasiEnv>> {
8 Ok(Ok(ctx))
9}
10
11#[cfg(feature = "journal")]
12pub fn maybe_snapshot<M: MemorySize>(
13 mut ctx: FunctionEnvMut<'_, WasiEnv>,
14) -> WasiResult<FunctionEnvMut<'_, WasiEnv>> {
15 use crate::os::task::process::{WasiProcessCheckpoint, WasiProcessInner};
16
17 if !ctx.data().enable_journal {
18 return Ok(Ok(ctx));
19 }
20
21 let inner = ctx.data().process.inner.clone();
22 let res = wasi_try_ok_ok!(WasiProcessInner::maybe_checkpoint::<M>(inner, ctx)?);
23 match res {
24 MaybeCheckpointResult::Unwinding => return Ok(Err(Errno::Success)),
25 MaybeCheckpointResult::NotThisTime(c) => {
26 ctx = c;
27 }
28 }
29 Ok(Ok(ctx))
30}