Mageia Bugzilla – Attachment 4669 Details for
Bug 10289
MCC & mgapplet segfault due to glib2.0/webkit threads (perl segfaulting when having a custom signal handler for SIG_CHILD)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
[patch]
workaround the issue
10289b.diff (text/plain), 586 bytes, created by
Thierry Vignaud
on 2013-12-27 15:31:55 CET
(
hide
)
Description:
workaround the issue
Filename:
MIME Type:
Creator:
Thierry Vignaud
Created:
2013-12-27 15:31:55 CET
Size:
586 bytes
patch
obsolete
>--- /usr/libexec/drakconf 2013-12-27 14:37:21.201531322 +0100 >+++ /usr/libexec/drakconf 2013-12-27 15:17:18.228238022 +0100 >@@ -701,6 +702,5 @@ > 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 +1213,11 @@ > > 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) {
--- /usr/libexec/drakconf 2013-12-27 14:37:21.201531322 +0100 +++ /usr/libexec/drakconf 2013-12-27 15:17:18.228238022 +0100 @@ -701,6 +702,5 @@ 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 +1213,11 @@ 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) {
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 10289
:
4145
|
4146
| 4669 |
4722
|
4723
|
4732
|
4738