自定义jmpbuf结构—SRS对StateThreads的改进与完善

jmpbuf 的全称其实是 jump buffer,存储的是 longjump 函数所需要的信息。也就是协程的上下文。由于 jmpbuf 在不同的平台内部实现不一样,而且如果 glibc 后面版本如果改变了 jmpbuf 的内存布局,就不能用了。

所以 SRS 为了保证系统的 鲁棒性 跟 扩展性,自己定义了 jmpbuf 的结构。如下:

原来 1.9 版本的 StateThreads 的 jmpbuf 是使用的 setjmp.h 里面的定义,如下:


我们再看回来 common.h 头文件里面的 struct _st_thread 结构,会发现 context 字段的结构已经变了。


推荐阅读《掀起你的汇编来:如何移植ST协程到其他系统或CPU?》

相关推荐
屏什么录2 天前
录屏超过两小时就卡顿崩盘?从参数调优到代码实现,一文彻底搞定长时间录屏
前端·音视频开发
字节跳动视频云技术团队3 天前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
VimorphTech6 天前
文件名是 MP4 就能处理?用 ffprobe 检查视频流、音轨和时长
java·音视频开发
冬奇Lab9 天前
开源项目第242期:HyperFrames —— 写 HTML 就能渲染视频,专为 AI Agent 设计的确定性视频框架
人工智能·开源·音视频开发
屏什么录14 天前
电脑如何录屏幕视频和声音?从工具到代码,7 种方案帮你彻底搞定
前端·音视频开发
VimorphTech14 天前
转写结果怎么生成双语字幕?TypeScript 实现 SRT、WebVTT 与索引匹配
javascript·音视频开发
音视频牛哥19 天前
人形机器人的未来发展趋势是什么?从VLA、实时视觉到规模化运营
机器学习·机器人·音视频开发
霍营_托尼20 天前
纯前端播 40GB 本地视频?我把浏览器改造成了「磁盘流式」播放器
前端·javascript·音视频开发
花椒技术1 个月前
2.46 秒生成 5 秒视频:拆解 H3 Max 的模型、推理栈与硬件协同
算法·音视频开发·视频编码
代码小学僧1 个月前
从 0 到 1,记录我的第一个出海 SaaS 独立开发项目
前端·rpc·音视频开发