forked from void-linux/void-packages
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
berry: add patch to address zombie process
Closes: void-linux#46416 [via git-merge-pr] Closes: void-linux#46039
- Loading branch information
Showing
2 changed files
with
42 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
https://patch-diff.githubusercontent.com/raw/JLErvin/berry/pull/198.patch | ||
|
||
From 3501ee006ee9bdddc817fd71750e431b4186a0c7 Mon Sep 17 00:00:00 2001 | ||
From: Joseph Eib <xealblade@example.com> | ||
Date: Wed, 30 Nov 2022 17:10:43 -0500 | ||
Subject: [PATCH] Avoid creation of zombie process by load_config | ||
|
||
Previously, a zombie process was created when the process forked in | ||
load_config terminates because the parent does not call wait or waitpid. | ||
It is unreasonable to wait for the child because a user may exec their | ||
autostart script into a long-running process. Instead, the parent now | ||
simply ignores SIGCHLD which allows the child to be reaped immediately | ||
upon termination. | ||
--- | ||
wm.c | 5 ++++- | ||
1 file changed, 4 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/wm.c b/wm.c | ||
index f3a01b8..b863bea 100644 | ||
--- a/wm.c | ||
+++ b/wm.c | ||
@@ -4,6 +4,7 @@ | ||
#include "config.h" | ||
|
||
#include <limits.h> | ||
+#include <signal.h> | ||
#include <stdbool.h> | ||
#include <stdio.h> | ||
#include <stdint.h> | ||
@@ -2536,8 +2537,10 @@ main(int argc, char *argv[]) | ||
LOGN("Successfully opened display"); | ||
|
||
setup(); | ||
- if (conf_found) | ||
+ if (conf_found) { | ||
+ signal(SIGCHLD, SIG_IGN); | ||
load_config(conf_path); | ||
+ } | ||
run(); | ||
close_wm(); | ||
free(font_name); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters