summaryrefslogtreecommitdiff
path: root/core/src/xmake/thread/thread_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/xmake/thread/thread_init.c')
-rw-r--r--core/src/xmake/thread/thread_init.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/src/xmake/thread/thread_init.c b/core/src/xmake/thread/thread_init.c
index 2a792463a..2d3e067f7 100644
--- a/core/src/xmake/thread/thread_init.c
+++ b/core/src/xmake/thread/thread_init.c
@@ -46,8 +46,9 @@ static tb_int_t xm_thread_func(tb_cpointer_t priv) {
tb_assert_and_check_return_val(thread, 0);
xm_engine_ref_t engine = xm_engine_pool_alloc(xm_engine_pool());
- if (!engine)
+ if (!engine) {
engine = xm_engine_init(XM_THREAD_ENGINE_NAME, tb_null);
+ }
if (engine) {
lua_State *lua = xm_engine_lua(engine);
tb_assert(lua);
@@ -71,8 +72,9 @@ static tb_int_t xm_thread_func(tb_cpointer_t priv) {
// start engine
tb_char_t *argv[] = { XM_THREAD_ENGINE_NAME, tb_null };
xm_engine_main(engine, 1, argv, tb_null);
- if (!xm_engine_pool_free(xm_engine_pool(), engine))
+ if (!xm_engine_pool_free(xm_engine_pool(), engine)) {
xm_engine_exit(engine);
+ }
}
return 0;
}