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

初始化

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)(...)

 

 

 

相关文章:

  • 2021-06-11
  • 2022-12-23
  • 2021-12-07
  • 2021-08-06
  • 2021-08-11
  • 2022-12-23
  • 2022-01-16
  • 2021-07-25
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
  • 2021-05-22
  • 2021-10-07
相关资源
相似解决方案