Hacker News new | past | comments | ask | show | jobs | submit login

This also means the function might not do what you want, i.e. if it takes a `&mut T` argument, that argument can't actually be mutated, and anything that relies on interior mutability, even if it's not a mut argument, also won't work.

Rust allows memory-impure things, like interior mutability of arguments, so you can get different (i.e. incorrect) results when using this to run otherwise fine rust code.

For example:

    fn some_fn(x: &mut i32) {
      *x = 2;
    }

    fn main() {
      let mux x = 1;
      mem_isolate::execute_in_isolated_process(|| {
        some_fn(&mut x);
      }).unwrap();
      println!("{x}"); // prints '1' even though without 'mem_isolate' this would be 2
    }



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: