summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tvignaud@mandriva.org>2003-11-17 13:16:41 +0000
committerThierry Vignaud <tvignaud@mandriva.org>2003-11-17 13:16:41 +0000
commit5ab6f51b520cb12dae6003ea0424348148aa64c1 (patch)
tree7fc78693345f58fbbce298130bbafe61a1f072c8
parent5e071e58f47196b4261d1757a2cd78fa7fbbcfee (diff)
downloadcontrol-center-5ab6f51b520cb12dae6003ea0424348148aa64c1.tar
control-center-5ab6f51b520cb12dae6003ea0424348148aa64c1.tar.gz
control-center-5ab6f51b520cb12dae6003ea0424348148aa64c1.tar.bz2
control-center-5ab6f51b520cb12dae6003ea0424348148aa64c1.tar.xz
control-center-5ab6f51b520cb12dae6003ea0424348148aa64c1.zip
always kill logdrake on exit else logdrake will still parse logs and
issues gtk+ warnings on console (register logdrake pid even when not in embedded mode so that we can kill him on exit)
-rwxr-xr-xcontrol-center7
1 files changed, 4 insertions, 3 deletions
diff --git a/control-center b/control-center
index 77458f42..9695f90e 100755
--- a/control-center
+++ b/control-center
@@ -703,7 +703,7 @@ sub sig_child() {
my @pid_launched;
# logdrake pid are stocked here
-my @pid_exp;
+my $pid_exp;
sub fork_ {
@@ -713,6 +713,7 @@ sub fork_ {
if (defined $pid) {
!$pid and do { exec($prog) or POSIX::_exit(1) }; # immediate exit, else forked gtk+ object destructors will badly catch up parent mcc
push @$o_pid_table, $pid if $option_values{embedded};
+ return $pid;
} else {
splash_warning(N("cannot fork: %s", "$!"));
child_just_exited();
@@ -776,7 +777,7 @@ sub compute_exec_string {
$w_exp->show;
my $exec_log = "logdrake --explain=$log_exp --embedded " . $exp_socket->window->XWINDOW;
$freeze_log = 0;
- fork_($exec_log, \@pid_exp);
+ $pid_exp = fork_($exec_log);
}
}
@@ -809,7 +810,7 @@ sub kill_children() {
}
sub kill_logdrake() {
- kill_them_all(@pid_exp);
+ kill_them_all($pid_exp);
}
sub quit_global() {