diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2013-12-28 16:38:14 +0100 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2013-12-28 16:38:14 +0100 |
commit | d4afbe1de7a5fc9bbe88e478257b582d98f64a79 (patch) | |
tree | 964f4cfe03de89ab68c5ea04cb0f8355e973ecb3 | |
parent | 6b6c2cf938b656a54e4bcd6da4d024c069afff8e (diff) | |
download | control-center-d4afbe1de7a5fc9bbe88e478257b582d98f64a79.tar control-center-d4afbe1de7a5fc9bbe88e478257b582d98f64a79.tar.gz control-center-d4afbe1de7a5fc9bbe88e478257b582d98f64a79.tar.bz2 control-center-d4afbe1de7a5fc9bbe88e478257b582d98f64a79.tar.xz control-center-d4afbe1de7a5fc9bbe88e478257b582d98f64a79.zip |
try harder to prevent segfaulting on webkit init (mga#10289)
we segfault in SIG_CHLD when temporary webkit threads exit on init:
delay setting CHLD handler on forking the 1st tool
-rw-r--r-- | NEWS | 3 | ||||
-rwxr-xr-x | control-center | 6 |
2 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,6 @@ +- try harder to prevent segfaulting in SIG_CHLD when temporary webkit threads + exit on init: delay setting CHLD handler on forking the 1st tool (mga#10289) + Version 12.46 - 21 December 2013 Thierry Vignaud - fix segfault when webkit creates threads for good (mga#10289) diff --git a/control-center b/control-center index 67139430..d2bfa2dd 100755 --- a/control-center +++ b/control-center @@ -705,7 +705,6 @@ $view->signal_connect('load-finished' => sub { state $done; return if $done; $done = 1; - $SIG{CHLD} = \&sig_child; Glib::Timeout->add(100, sub { sig_child('CHLD', 1); 1 }); load_program() if $program; }); @@ -1203,6 +1202,11 @@ my $pid_exp; sub fork_ { my ($prog, $o_pid_table) = @_; + state $done; + if (!$done) { + $done = 1; + $SIG{CHLD} = \&sig_child; + } $o_pid_table ||= \@pid_launched; my $pid = fork(); if (defined $pid) { |