From 683e4eff08d668f5a5c0cef1f38797ebfff36624 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Tue, 30 Aug 2022 16:23:38 -0400 Subject: [PATCH] finalize-staged: Don't listen to `SIGTERM`, just let kernel exit us Followup from discussion in https://github.com/ostreedev/ostree/pull/2544#discussion_r958840936 This is more efficient; no need to have the kernel context switch us in at shutdown time just so we can turn around and call `exit()`. --- src/ostree/ot-admin-builtin-finalize-staged.c | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/ostree/ot-admin-builtin-finalize-staged.c b/src/ostree/ot-admin-builtin-finalize-staged.c index ed4f20d759..e408f44730 100644 --- a/src/ostree/ot-admin-builtin-finalize-staged.c +++ b/src/ostree/ot-admin-builtin-finalize-staged.c @@ -41,16 +41,6 @@ static GOptionEntry options[] = { { NULL } }; -static gboolean -sigterm_cb (gpointer user_data) -{ - gboolean *running = user_data; - g_print ("Received SIGTERM, exiting\n"); - *running = FALSE; - g_main_context_wakeup (NULL); - return G_SOURCE_REMOVE; -} - /* Called by ostree-finalize-staged.service, and in turn * invokes a cmdprivate function inside the shared library. */ @@ -94,14 +84,10 @@ ot_admin_builtin_finalize_staged (int argc, char **argv, OstreeCommandInvocation return FALSE; /* We want to keep /boot open until the deployment is finalized during - * system shutdown, so block on SIGTERM under the assumption that it will - * be received when systemd stops the unit. + * system shutdown, so block until we get SIGTERM which systemd will send + * when the unit is stopped. */ - gboolean running = TRUE; - g_unix_signal_add (SIGTERM, sigterm_cb, &running); - g_print ("Waiting for SIGTERM\n"); - while (running) - g_main_context_iteration (NULL, TRUE); + pause (); } else {