模块加载过程
启动事件处理线程池
启动事件处理线程池 :
SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load)
=> sofia_msg_thread_start(0);
=> sofia_msg_thread_run
=> sofia_process_dispatch_event
=> our_sofia_event_callback : 处理消息
这个线程的主要流程很简单就是从队列mod_sofia_globals.msg_queue
取出消息,消息结构体是sofia_dispatch_event_t,然后执行
sofia_process_dispatch_event(&de)
our_sofia_event_callback(de->data->e_event, de->data->e_status, de->data->e_phrase, de->nua, de->profile,
de->nh, sofia_private, de->sip, de, (tagi_t *) de->data->e_tags);
启动服务器监听
SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load)
=> config_sofia(0, NULL)
=> launch_sofia_profile_thread
=> sofia_profile_thread_run
=> nua_create

本文解析了Sofia模块的加载过程,包括事件处理线程池启动、服务器监听启动等关键步骤。深入探讨了profile线程的工作原理及各类线程的具体职责。
最低0.47元/天 解锁文章
1789

被折叠的 条评论
为什么被折叠?



