Rust in Everything
基于 mio 1.2.4

导读

开始读源码之前,先把两件事讲清楚:

  1. 怎么读这一卷:为什么是 1.2.4,它和本站锁的 1.2.1 之间 34 个提交各碰了哪个平台(Linux 上没有行为变化;macOS 上 Waker 的实现换了写法,用户看到的事件数不变);注册主线和事件主线每一步落在哪个函数、哪个系统调用上,用一个最小程序在容器里跑 strace 对照;阅读路线、前置知识和实验环境。
  2. 源码地图: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"]

💬 关联讨论

发起讨论
加载中...