Skip to content

Commit

Permalink
finalize-staged: Don't listen to SIGTERM, just let kernel exit us
Browse files Browse the repository at this point in the history
Followup from discussion in
#2544 (comment)

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()`.
  • Loading branch information
cgwalters committed Aug 30, 2022
1 parent 6651b72 commit 683e4ef
Showing 1 changed file with 3 additions and 17 deletions.
20 changes: 3 additions & 17 deletions src/ostree/ot-admin-builtin-finalize-staged.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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
{
Expand Down

0 comments on commit 683e4ef

Please sign in to comment.