博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

用一个调用链来表示函数调用的流程,看起来更直观。根据上面的分析,总结了一些重要的调用链。

初始化

event_base_new

    event_base_new_with_config

        min_heap_ctor

        event_deferred_cb_queue_init

        evmap_io_initmap

        evmap_signal_initmap

        event_changelist_init

        <bind evsel>

        evsel->init[select_init]

            select_resize

            evsig_init

                evutil_socketpair

                <assign base->evsig->ev_signal

 

添加事件

event_add

    event_add_internal

        evmap_io_add

        或evmap_signal_add

        event_queue_insert

 

消息泵

event_base_dispatch

    select_dispatch[evsel->dispatch]

        select

        evmap_io_active

    event_process_active 

        event_process_active_single_queue

            (*ev->callback)(...)

 

 

 

posted on 2014-04-21 23:15  黑米  阅读(567)  评论(0编辑  收藏  举报