[runtime] Ignore ResetAbort when the current appdomain is unloading
[mono.git] / mono / mini / driver.c
index f8d485292afd01fb50f4b7e7fc14c08e261704bd..a364415e2575b91e95966579e838fdb30c633f2f 100644 (file)
@@ -1420,8 +1420,8 @@ mono_jit_parse_options (int argc, char * argv[])
                        opt->break_on_exc = TRUE;
                } else if (strcmp (argv [i], "--stats") == 0) {
                        mono_counters_enable (-1);
-                       mono_stats.enabled = TRUE;
-                       mono_jit_stats.enabled = TRUE;
+                       InterlockedWriteBool (&mono_stats.enabled, TRUE);
+                       InterlockedWriteBool (&mono_jit_stats.enabled, TRUE);
                } else if (strcmp (argv [i], "--break") == 0) {
                        if (i+1 >= argc){
                                fprintf (stderr, "Missing method name in --break command line option\n");
@@ -1767,8 +1767,8 @@ mono_main (int argc, char* argv[])
                        mono_print_vtable = TRUE;
                } else if (strcmp (argv [i], "--stats") == 0) {
                        mono_counters_enable (-1);
-                       mono_stats.enabled = TRUE;
-                       mono_jit_stats.enabled = TRUE;
+                       InterlockedWriteBool (&mono_stats.enabled, TRUE);
+                       InterlockedWriteBool (&mono_jit_stats.enabled, TRUE);
 #ifndef DISABLE_AOT
                } else if (strcmp (argv [i], "--aot") == 0) {
                        error_if_aot_unsupported ();
@@ -2376,6 +2376,11 @@ mono_jit_set_aot_mode (MonoAotMode mode)
                mono_aot_only = TRUE;
                mono_use_interpreter = TRUE;
        }
+       if (mono_aot_mode == MONO_AOT_MODE_INTERP_LLVMONLY) {
+               mono_aot_only = TRUE;
+               mono_use_interpreter = TRUE;
+               mono_llvm_only = TRUE;
+       }
 }
 
 mono_bool