Swoole 源码分析1 - 协程的上下文切换
协程的核心就是上下文切换,故以此为 Swoole 源码分析的开篇。Swoole 与 Fiber 都采用了 boost 库中协程上下文切换( context switch )的实现代码,在这一点上两者完全相同。
占坑。。。 抽空再来写完。。。
查阅 boost 协程 context 文档
协程栈
boost 协程基础用法
boost 协程双向通信
Swoole 中的协程上下文( context )
Fiber 中的上下文切换
Swoole 协程上下文切换实现原理
linux 上的 AT&T 记法
x64 汇编基础
swoole_make_fcontext 汇编源码分析
swoole_jump_fcontext 汇编源码分析
思考:为什么要保存所有约定不变寄存器
梳理 Swoole 协程上下文切换整体流程
从 main 进入协程函数
从协程函数 jmp 回 main
从一个协程函数 jmp 到另一个协程函数
从一个协程函数 jmp 出后再 jmp 回去
从一个协程函数 return
分析 swoole::corutine::Context
swoole 协程栈的申请与释放
swap_in() 与 swap_out()
swoole 协程工作函数与参数封装
swap_out() 后,执行流到哪里了
swap_in() 后,执行流从哪里恢复
总结
分类: 编程
标签: 协程 Swoole 源码分析