2023/12/11(月)
頭が働かない。
用向きがあってnginxのソースコードを呼んでいる。
nginx_single_process_cycle
の中でイベントループngx_process_events_and_timers
でイベントを1回処理+タイマーを1回処理ngx_process_events
でイベント処理、これはngx_event_actions.process_events
のマクロngx_event_actions
にはモジュールによって違う関数がセットされる(?)
イベント処理の大まかな仕組みはこんなものか。
ある程度読んでいく内に理解したが、nginxのコードを読んでいくと「関数ポインタをいくつか記録する構造体」「そのような構造体オブジェクトをグローバルに置いて中身をアプリ初期化時などに決定する」といった構造が随所にみられる。C言語だがやってることは要するにインターフェースやDIの考え方だ。だいぶ感動した。
Categories: 未分類