ae.c — 事件循环抽象层

源文件:src/ae.c · 共 517 行 C 代码

模块职责

包装 epoll/kqueue/select,统一接口给上层使用。

文件头注释

/* A simple event-driven programming library. Originally I wrote this code
 * for the Jim's event-loop (Jim is a Tcl interpreter) but later translated
 * it in form of a library for easy reuse.
 *
 * Copyright (c) 2006-Present, Redis Ltd.
 * All rights reserved.
 *
 * Licensed under your choice of (a) the Redis Source Available License 2.0
 * (RSALv2); or (b) the Server Side Public License v1 (SSPLv1); or (c) the
 * GNU Affero General Public License v3 (AGPLv3).
 */

主要数据结构与函数

  • 数据结构:见 src/ae.h 同名头文件
  • 关键函数:通过 grep -nE '^(void|int|robj\*|sds|list|dict|client|server)' src/ae.c 检索

阅读路径建议

  1. 先看 ae.h 头文件了解对外接口
  2. 再读本文件顶部 #include 列表确认依赖
  3. ^[a-z_]+Init\( 类入口函数作为切入点