HTL_thread_scheduler_param_t
类型 |
名称 |
说明 |
---|---|---|
HTL_thread_scheduler_target_t |
type |
调度器调度目标类型。 |
HTL_thread_scheduler_init_fn |
init |
调度器初始化函数。 |
HTL_thread_scheduler_run_fn |
run |
调度器运行函数。 |
HTL_thread_scheduler_free_fn |
free |
调度器释放函数。 |
HTL_thread_scheduler_get_migr_pool_fn |
get_migr_pool |
返回一个迁移的池。 |
结构体说明
- HTL_thread_scheduler_target_t type
- int (*HTL_thread_scheduler_init_fn::init)(HTL_thread_scheduler_t, HTL_thread_scheduler_config_t)
调度器初始化函数。init()根据调度器配置初始化调度器。如果init()没有返回HTL_SUCCESS,则调度器创建失败。init()是可选的,因此用户可以将init设置为NULL。
- void* (*HTL_thread_scheduler_run_fn::run)(HTL_thread_scheduler_t)
调度器运行函数。run()运行调度器计划。用户可以自由设计此函数,包含以下属性:
- 定期事件检查:
run()定期调用HTL_thread_executor_check_event()。频率由用户定义的,但一些请求处理依赖HTL_thread_executor_check_event()的处理。
- 结束run(),如需要:
run()定期调用HTL_thread_scheduler_stop(),如果返回HTL_TRUE返回,则run()应立即返回。调用频率由用户定义的,但一些请求处理依赖于HTL_thread_scheduler_stop()的机制。
run()的调用者是与sched关联的工作单元。如果sched是主调度器,则底层执行器在run()中保持不变。run()不是可选的,因此用户必须实现此功能。
- 定期事件检查:
- int (*HTL_thread_scheduler_free_fn::get_migr_pool)(HTL_thread_scheduler_t)
调度器释放函数。free()去初始化调度器。free()的返回值会被忽略。
free()是可选的,因此用户可以将free设置为NULL。
free()仅在释放调度器时调用。free()在其关联的工作单元终止时不调用。
- HTL_thread_pool_t (*HTL_thread_scheduler_get_migr_pool_fn::get_migr_pool)(HTL_thread_scheduler_t)
获得迁移池函数。get_migr_pool()会返回与调度器关系的线程池,该池作为迁移池。
如果get_migr_pool()返回HTL_THREAD_POOL_NULL或与调度无关的池,则结果是未定义的。
get_migr_pool()是可选的,用户可以将get_migr_pool设置为NULL。如果get_migr_pool为NULL,则HTL将选择与调度关联的合使的池。