diff options
-rw-r--r-- | mono/metadata/threads.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c index 86d6c5d7308..e7c1abe89c0 100644 --- a/mono/metadata/threads.c +++ b/mono/metadata/threads.c @@ -3638,6 +3638,10 @@ collect_threads (MonoInternalThread **thread_array, int max_threads) { CollectThreadsUserData ud; + mono_memory_barrier (); + if (!threads) + return 0; + memset (&ud, 0, sizeof (ud)); /* This array contains refs, but its on the stack, so its ok */ ud.threads = thread_array; @@ -5618,6 +5622,9 @@ mono_threads_summarize (MonoContext *ctx, gchar **out) MonoInternalThread *thread_array [128]; int nthreads = collect_threads (thread_array, 128); + if (nthreads == 0) + MOSTLY_ASYNC_SAFE_PRINTF("No managed threads detected, error occured before thread init\n"); + sigset_t sigset, old_sigset; sigemptyset(&sigset); sigaddset(&sigset, SIGTERM); |