wasmer_wasix/syscalls/wasix/
closure_free.rsuse crate::syscalls::*;
#[instrument(level = "trace", fields(%closure), ret)]
pub fn closure_free(
mut ctx: FunctionEnvMut<'_, WasiEnv>,
closure: u32,
) -> Result<Errno, WasiError> {
WasiEnv::do_pending_operations(&mut ctx)?;
let (env, mut store) = ctx.data_and_store_mut();
let Some(linker) = env.inner().linker().cloned() else {
error!("Closures only work for dynamic modules.");
return Ok(Errno::Notsup);
};
let free_result = linker.free_closure_index(&mut ctx, closure);
if let Err(e) = free_result {
panic!("Failed to free closure index: {e}");
}
return Ok(Errno::Success);
}