From 82e989f63142fbbe19a8b772f5123b18aba0e7e7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bennet=20Ble=C3=9Fmann?= Date: Sat, 19 Jul 2025 22:56:51 +0200 Subject: [PATCH] add comments and try to fix binding the child process pid --- src/machine/system_calls.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index d48ad555..ecffbdb7 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -8399,13 +8399,19 @@ impl Machine { functor_stub(atom!("process_create"), 3) } + // String let exe_r = self.deref_register(1); + // [String,...] let args_r = self.deref_register(2); + // [std] | [null] | [pipe, Var] | [file, String] let stdin_r = self.deref_register(3); let stdout_r = self.deref_register(4); let stderr_r = self.deref_register(5); + // [env | environment, [[String, String],...]] let env_r = self.deref_register(6); + // Var | String let cwd_r = self.deref_register(7); + // Var let pid_r = self.deref_register(8); let exe = self.machine_st.value_to_str_like(exe_r).unwrap(); @@ -8484,11 +8490,16 @@ impl Machine { match command.spawn() { Ok(child) => { - self.machine_st - .unify_fixnum(Fixnum::build_with(child.id()), pid_r); + let pid = child.id(); + self.machine_st.bind( + pid_r.as_var().unwrap(), + fixnum_as_cell!(Fixnum::build_with(pid)), + ); Ok(()) } - Err(_) => { + Err(err) => { + // TODO give better error indication + dbg!(err); self.machine_st.fail = true; Ok(()) } -- 2.54.0