导读
开始读源码之前,先把两件事讲清楚:
- 怎么读这一卷:为什么是 1.2.4,它和本站锁的 1.2.1 之间 34 个提交各碰了哪个平台(Linux 上没有行为变化;macOS 上
Waker的实现换了写法,用户看到的事件数不变);注册主线和事件主线每一步落在哪个函数、哪个系统调用上,用一个最小程序在容器里跑 strace 对照;阅读路线、前置知识和实验环境。 - 源码地图:
src/1.35 万行怎么按平台分层;macros.rs里的cfg_*宏和os-poll、net、os-ext三个 feature,不开os-poll时Poll还在、Poll::new没了,网络类型落到会 panic 的sys/shell;每个target_os用哪个 selector 和哪个Waker;mio_unsupported_force_poll_poll;tests/和 CI 覆盖的平台。
flowchart TB read[怎么读这一卷] --> ver["版本:1.2.1 到 1.2.4"] read --> lines[两条主线] read --> env[实验环境] map[源码地图] --> layer["src 的平台分层"] map --> feat["feature 与 sys/shell"] map --> sel["每个平台的 selector"] map --> ci["tests 与 CI"]
💬 关联讨论
发起讨论加载中...