Merge lp:~afrantzis/unity-system-compositor/no-external-spinner-zombie-processes-sigchld into lp:unity-system-compositor

Proposed by Alexandros Frantzis
Status: Superseded
Proposed branch: lp:~afrantzis/unity-system-compositor/no-external-spinner-zombie-processes-sigchld
Merge into: lp:unity-system-compositor
Diff against target: 34 lines (+17/-0)
1 file modified
src/external_spinner.cpp (+17/-0)
To merge this branch: bzr merge lp:~afrantzis/unity-system-compositor/no-external-spinner-zombie-processes-sigchld
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Unity System Compositor Development Team Pending
Review via email: mp+264410@code.launchpad.net

This proposal has been superseded by a proposal from 2015-07-10.

Commit message

Don't leave zombie spinner processes

Description of the change

Don't leave zombie spinner processes

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Unmerged revisions

224. By Alexandros Frantzis

Don't leave zombie spinner processes

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/external_spinner.cpp'
--- src/external_spinner.cpp 2015-04-01 17:06:16 +0000
+++ src/external_spinner.cpp 2015-07-10 12:07:43 +0000
@@ -20,6 +20,18 @@
2020
21#include <unistd.h>21#include <unistd.h>
22#include <signal.h>22#include <signal.h>
23#include <sys/wait.h>
24
25namespace
26{
27
28void wait_for_child(int)
29{
30 while (waitpid(-1, nullptr, WNOHANG) > 0)
31 continue;
32}
33
34}
2335
24usc::ExternalSpinner::ExternalSpinner(36usc::ExternalSpinner::ExternalSpinner(
25 std::string const& executable,37 std::string const& executable,
@@ -28,6 +40,11 @@
28 mir_socket{mir_socket},40 mir_socket{mir_socket},
29 spinner_pid{0}41 spinner_pid{0}
30{42{
43 struct sigaction sa;
44 sigfillset(&sa.sa_mask);
45 sa.sa_handler = wait_for_child;
46 sa.sa_flags = 0;
47 sigaction(SIGCHLD, &sa, nullptr);
31}48}
3249
33usc::ExternalSpinner::~ExternalSpinner()50usc::ExternalSpinner::~ExternalSpinner()

Subscribers

People subscribed via source and target branches