mobile/System.dll: Add BindingList<T>
[mono.git] / mono / mini / mini-posix.c
index 674117f311c63231bacfdd6487b1e32285614ff8..d03e1147d4fbe22ac33732640d42cca4637fc6cb 100644 (file)
@@ -208,10 +208,17 @@ SIG_HANDLER_SIGNATURE (sigusr1_signal_handler)
        
        GET_CONTEXT;
 
-       if (!thread || !domain)
+       if (!thread || !domain) {
                /* The thread might not have started up yet */
                /* FIXME: Specify the synchronization with start_wrapper () in threads.c */
+               mono_debugger_agent_thread_interrupt (ctx, NULL);
                return;
+       }
+
+       if (thread->ignore_next_signal) {
+               thread->ignore_next_signal = FALSE;
+               return;
+       }
 
        if (thread->thread_dump_requested) {
                thread->thread_dump_requested = FALSE;
@@ -651,19 +658,19 @@ mono_runtime_syscall_fork ()
 #endif
 }
 
-gboolean
-mono_gdb_render_native_backtraces ()
+void
+mono_gdb_render_native_backtraces (pid_t crashed_pid)
 {
        const char *argv [9];
        char buf1 [128];
 
        argv [0] = g_find_program_in_path ("gdb");
        if (argv [0] == NULL) {
-               return FALSE;
+               return;
        }
 
        argv [1] = "-ex";
-       sprintf (buf1, "attach %ld", (long)getpid ());
+       sprintf (buf1, "attach %ld", (long) crashed_pid);
        argv [2] = buf1;
        argv [3] = "--ex";
        argv [4] = "info threads";
@@ -673,8 +680,6 @@ mono_gdb_render_native_backtraces ()
        argv [8] = 0;
 
        execv (argv [0], (char**)argv);
-
-       return TRUE;
 }
 #endif
 #endif /* __native_client__ */