Wait for the child process and then simply return. This makes The "S"
authorMatthias Clasen <mclasen@redhat.com>
Mon, 15 Aug 2005 19:32:32 +0000 (19:32 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 15 Aug 2005 19:32:32 +0000 (19:32 +0000)
2005-08-15  Matthias Clasen  <mclasen@redhat.com>

* glib/gbacktrace.c (g_on_error_stack_trace): Wait for
the child process and then simply return. This makes
The "S" option work as documented in g_on_error_query().
(#313125, Matthew F. Barnes)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-8
glib/gbacktrace.c

index 09c4f8e..1493588 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
 
+       * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
+       the child process and then simply return. This makes 
+       The "S" option work as documented in g_on_error_query().
+       (#313125, Matthew F. Barnes)
+
        * glib/gunicode.h: Update the link to Unicode category
        values.  (#313369, Behnam Esfahbod)
 
index 09c4f8e..1493588 100644 (file)
@@ -1,5 +1,10 @@
 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
 
+       * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
+       the child process and then simply return. This makes 
+       The "S" option work as documented in g_on_error_query().
+       (#313125, Matthew F. Barnes)
+
        * glib/gunicode.h: Update the link to Unicode category
        values.  (#313369, Behnam Esfahbod)
 
index 09c4f8e..1493588 100644 (file)
@@ -1,5 +1,10 @@
 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
 
+       * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
+       the child process and then simply return. This makes 
+       The "S" option work as documented in g_on_error_query().
+       (#313125, Matthew F. Barnes)
+
        * glib/gunicode.h: Update the link to Unicode category
        values.  (#313369, Behnam Esfahbod)
 
index 09c4f8e..1493588 100644 (file)
@@ -1,5 +1,10 @@
 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
 
+       * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
+       the child process and then simply return. This makes 
+       The "S" option work as documented in g_on_error_query().
+       (#313125, Matthew F. Barnes)
+
        * glib/gunicode.h: Update the link to Unicode category
        values.  (#313369, Behnam Esfahbod)
 
index 934c8ca..a60e319 100644 (file)
@@ -45,6 +45,7 @@
 #include <sys/times.h>
 #endif
 #include <sys/types.h>
+#include <sys/wait.h>
 
 #include <time.h>
 #ifdef HAVE_UNISTD_H
@@ -161,6 +162,7 @@ g_on_error_stack_trace (const gchar *prg_name)
   pid_t pid;
   gchar buf[16];
   gchar *args[4] = { "gdb", NULL, NULL, NULL };
+  int status;
 
   if (!prg_name)
     return;
@@ -181,10 +183,8 @@ g_on_error_stack_trace (const gchar *prg_name)
       perror ("unable to fork gdb");
       return;
     }
-  
-  while (glib_on_error_halt)
-    ;
-  glib_on_error_halt = TRUE;
+
+  waitpid (pid, &status, 0);
 #else
   if (IsDebuggerPresent ())
     G_BREAKPOINT ();