Просмотр исходного кода

JIT: don't join worker threads twice (#4252)

in case of WASM_ENABLE_LAZY_JIT==0, compile_jit_functions should
have already joined these threads. joining them again here is
an undefined behavior.
YAMAMOTO Takashi 9 месяцев назад
Родитель
Сommit
f88718d705
2 измененных файлов с 4 добавлено и 0 удалено
  1. 2 0
      core/iwasm/interpreter/wasm_loader.c
  2. 2 0
      core/iwasm/interpreter/wasm_mini_loader.c

+ 2 - 0
core/iwasm/interpreter/wasm_loader.c

@@ -5711,6 +5711,7 @@ orcjit_thread_callback(void *arg)
 static void
 orcjit_stop_compile_threads(WASMModule *module)
 {
+#if WASM_ENABLE_LAZY_JIT != 0
     uint32 i, thread_num = (uint32)(sizeof(module->orcjit_thread_args)
                                     / sizeof(OrcJitThreadArg));
 
@@ -5719,6 +5720,7 @@ orcjit_stop_compile_threads(WASMModule *module)
         if (module->orcjit_threads[i])
             os_thread_join(module->orcjit_threads[i], NULL);
     }
+#endif
 }
 
 static bool

+ 2 - 0
core/iwasm/interpreter/wasm_mini_loader.c

@@ -2493,6 +2493,7 @@ orcjit_thread_callback(void *arg)
 static void
 orcjit_stop_compile_threads(WASMModule *module)
 {
+#if WASM_ENABLE_LAZY_JIT != 0
     uint32 i, thread_num = (uint32)(sizeof(module->orcjit_thread_args)
                                     / sizeof(OrcJitThreadArg));
 
@@ -2501,6 +2502,7 @@ orcjit_stop_compile_threads(WASMModule *module)
         if (module->orcjit_threads[i])
             os_thread_join(module->orcjit_threads[i], NULL);
     }
+#endif
 }
 
 static bool