diff options
Diffstat (limited to 'core/src/xmake/engine_pool.c')
| -rw-r--r-- | core/src/xmake/engine_pool.c | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/core/src/xmake/engine_pool.c b/core/src/xmake/engine_pool.c index 78081399c..39bdb1339 100644 --- a/core/src/xmake/engine_pool.c +++ b/core/src/xmake/engine_pool.c @@ -22,8 +22,8 @@ /* ////////////////////////////////////////////////////////////////////////////////////// * trace */ -#define TB_TRACE_MODULE_NAME "engine_pool" -#define TB_TRACE_MODULE_DEBUG (0) +#define TB_TRACE_MODULE_NAME "engine_pool" +#define TB_TRACE_MODULE_DEBUG (0) /* ////////////////////////////////////////////////////////////////////////////////////// * includes @@ -37,71 +37,63 @@ */ // the max engine pool count -#define XM_ENGINE_POOL_MAXN (128) +#define XM_ENGINE_POOL_MAXN (128) // the singleton type of engine pool -#define XM_ENGINE_POOL (TB_SINGLETON_TYPE_USER + 4) +#define XM_ENGINE_POOL (TB_SINGLETON_TYPE_USER + 4) /* ////////////////////////////////////////////////////////////////////////////////////// * private implementation */ -static tb_handle_t xm_engine_pool_instance_init(tb_cpointer_t* ppriv) -{ +static tb_handle_t xm_engine_pool_instance_init(tb_cpointer_t *ppriv) { xm_engine_pool_ref_t engine_pool = xm_engine_pool_init(); tb_assert_and_check_return_val(engine_pool, tb_null); return (tb_handle_t)engine_pool; } -static tb_void_t xm_engine_pool_instance_exit(tb_handle_t engine_pool, tb_cpointer_t priv) -{ - if (engine_pool) xm_engine_pool_exit((xm_engine_pool_ref_t)engine_pool); +static tb_void_t xm_engine_pool_instance_exit(tb_handle_t engine_pool, tb_cpointer_t priv) { + if (engine_pool) { + xm_engine_pool_exit((xm_engine_pool_ref_t)engine_pool); + } } /* ////////////////////////////////////////////////////////////////////////////////////// * implementation */ -xm_engine_pool_ref_t xm_engine_pool() -{ - return (xm_engine_pool_ref_t)tb_singleton_instance(XM_ENGINE_POOL, xm_engine_pool_instance_init, xm_engine_pool_instance_exit, tb_null, tb_null); +xm_engine_pool_ref_t xm_engine_pool() { + return (xm_engine_pool_ref_t)tb_singleton_instance( + XM_ENGINE_POOL, xm_engine_pool_instance_init, xm_engine_pool_instance_exit, tb_null, tb_null); } -xm_engine_pool_ref_t xm_engine_pool_init() -{ +xm_engine_pool_ref_t xm_engine_pool_init() { return tb_single_list_init(0, tb_element_ptr(tb_null, tb_null)); } -tb_void_t xm_engine_pool_exit(xm_engine_pool_ref_t engine_pool) -{ - if (engine_pool) - { - tb_for_all (xm_engine_ref_t, engine, engine_pool) - { - if (engine) +tb_void_t xm_engine_pool_exit(xm_engine_pool_ref_t engine_pool) { + if (engine_pool) { + tb_for_all(xm_engine_ref_t, engine, engine_pool) { + if (engine) { xm_engine_exit(engine); + } } tb_single_list_exit(engine_pool); } } -xm_engine_ref_t xm_engine_pool_alloc(xm_engine_pool_ref_t engine_pool) -{ +xm_engine_ref_t xm_engine_pool_alloc(xm_engine_pool_ref_t engine_pool) { xm_engine_ref_t engine = tb_null; - if (tb_single_list_size(engine_pool) > 0) - { + if (tb_single_list_size(engine_pool) > 0) { engine = (xm_engine_ref_t)tb_single_list_head(engine_pool); tb_single_list_remove_head(engine_pool); } return engine; } -tb_bool_t xm_engine_pool_free(xm_engine_pool_ref_t engine_pool, xm_engine_ref_t engine) -{ - if (tb_single_list_size(engine_pool) < XM_ENGINE_POOL_MAXN) - { +tb_bool_t xm_engine_pool_free(xm_engine_pool_ref_t engine_pool, xm_engine_ref_t engine) { + if (tb_single_list_size(engine_pool) < XM_ENGINE_POOL_MAXN) { tb_single_list_insert_tail(engine_pool, engine); return tb_true; } return tb_false; } - |
