From 15022cab15c36ef2a54b7ac3f96e6ccdc751ac0d Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 17 Aug 2023 14:59:28 +0100 Subject: [PATCH] gtestutils: Mention not ignoring SIGCHLD in g_test_trap_subprocess() docs Prompted by #3071, this clarifies that `g_test_trap_subprocess()` uses `g_child_watch_source_new()` internally, so it will not work if any of the preconditions for using that API are not met. In particular, if `SIGCHLD` is ignored, things will break. This documentation is not meant to be an API guarantee which constrains the implementation of `g_test_trap_subprocess()` in future, just a tip to people currently using the API. Signed-off-by: Philip Withnall Helps: #3071 --- glib/gtestutils.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/glib/gtestutils.c b/glib/gtestutils.c index 70cdc20e0..483275a0a 100644 --- a/glib/gtestutils.c +++ b/glib/gtestutils.c @@ -4067,6 +4067,11 @@ G_GNUC_END_IGNORE_DEPRECATIONS * the subprocess, you can call g_test_subprocess() (after calling * g_test_init()) to see whether you are in a subprocess. * + * Internally, this function tracks the child process using + * g_child_watch_source_new(), so your process must not ignore `SIGCHLD`, and + * must not attempt to watch or wait for the child process via another + * mechanism. + * * The following example tests that calling * `my_object_new(1000000)` will abort with an error * message.