diff options
Diffstat (limited to 'core/src/xmake/thread/thread_init.c')
| -rw-r--r-- | core/src/xmake/thread/thread_init.c | 6 |
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; } |
