From b51f3e665c80c76fd068d86f185314bffe6412f1 Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Mon, 27 Nov 2023 17:15:29 +1000 Subject: [PATCH] Add posix_getppid/1 etc --- README.md | 1 + src/bif_posix.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/README.md b/README.md index b5c3a0a1c..aef24f565 100644 --- a/README.md +++ b/README.md @@ -438,6 +438,7 @@ Non-standard predicates posix_ctime/2 # posix_time(+seconds,-atom) posix_time/1 # posix_time(-seconds) posix_getpid/1 # posix_pid(-pid) + posix_getppid/1 # posix_ppid(-pid) posix_fork/1 # posix_fork(-pid) nb_setval(K,V) diff --git a/src/bif_posix.c b/src/bif_posix.c index f32eb319e..07e0369ef 100644 --- a/src/bif_posix.c +++ b/src/bif_posix.c @@ -230,6 +230,18 @@ static bool bif_posix_getpid_1(query *q) return unify(q, p1, p1_ctx, &tmp, q->st.curr_frame); } +static bool bif_posix_getppid_1(query *q) +{ + GET_FIRST_ARG(p1,var); + cell tmp; +#ifndef __wasi__ + make_int(&tmp, getppid()); +#else + make_int(&tmp, -1); +#endif + return unify(q, p1, p1_ctx, &tmp, q->st.curr_frame); +} + static bool bif_posix_fork_1(query *q) { GET_FIRST_ARG(p1,var); @@ -256,6 +268,7 @@ builtins g_posix_bifs[] = {"posix_ctime", 2, bif_posix_ctime_2, "+integer,-atom", false, false, BLAH}, {"posix_time", 1, bif_posix_time_1, "-integer", false, false, BLAH}, + {"posix_getppid", 1, bif_posix_getppid_1, "-integer", false, false, BLAH}, {"posix_getpid", 1, bif_posix_getpid_1, "-integer", false, false, BLAH}, {"posix_fork", 1, bif_posix_fork_1, "-integer", false, false, BLAH},