From 7f93dcab4da166aed3a0ad8e8d3b997b3a3b8b94 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 4 Jan 2013 10:37:29 -0500 Subject: Bug 691133 - Evolution creates 'highlight' zombies Evolution spawns the 'highlight' program with these flags: G_SPAWN_SEARCH_PATH G_SPAWN_DO_NOT_REAP_CHILD G_SPAWN_SEARCH_PATH is not needed because configure already determines the absolute path to the 'highlight' program. G_SPAWN_DO_NOT_REAP_CHILD results in zombie 'highlight' processes. Remove both flags. --- .../e-mail-formatter-text-highlight.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'modules/text-highlight') diff --git a/modules/text-highlight/e-mail-formatter-text-highlight.c b/modules/text-highlight/e-mail-formatter-text-highlight.c index dd5ed1d4d5..d180d60af7 100644 --- a/modules/text-highlight/e-mail-formatter-text-highlight.c +++ b/modules/text-highlight/e-mail-formatter-text-highlight.c @@ -175,14 +175,14 @@ emfe_text_highlight_format (EMailFormatterExtension *extension, } else if (context->mode == E_MAIL_FORMATTER_MODE_RAW) { gint pipe_stdin, pipe_stdout; GPid pid; - CamelStream *read, *write, *utf8; CamelDataWrapper *dw; - gchar *font_family, *font_size, *syntax, *tmp; - GByteArray *ba; + gchar *font_family, *font_size, *syntax; gboolean use_custom_font; EShell *shell; EShellSettings *settings; PangoFontDescription *fd; + gboolean success; + const gchar *argv[] = { HIGHLIGHT_COMMAND, NULL, /* --font= */ NULL, /* --font-size= */ @@ -244,11 +244,16 @@ emfe_text_highlight_format (EMailFormatterExtension *extension, argv[3] = g_strdup_printf ("--syntax=%s", syntax); g_free (syntax); - if (g_spawn_async_with_pipes ( - NULL, (gchar **) argv, NULL, - G_SPAWN_SEARCH_PATH | - G_SPAWN_DO_NOT_REAP_CHILD, - NULL, NULL, &pid, &pipe_stdin, &pipe_stdout, NULL, NULL)) { + success = g_spawn_async_with_pipes ( + NULL, (gchar **) argv, NULL, 0, NULL, NULL, + &pid, &pipe_stdin, &pipe_stdout, NULL, NULL); + + if (success) { + CamelStream *read; + CamelStream *write; + CamelStream *utf8; + GByteArray *ba; + gchar *tmp; write = camel_stream_fs_new_with_fd (pipe_stdin); read = camel_stream_fs_new_with_fd (pipe_stdout); -- cgit v1.2.3