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

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

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

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


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


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

相关推荐
leafyyuki2 天前
如何优雅地上传大文件?分片上传实战指南
前端·音视频开发
炼金术9 天前
AI 驱动的自主开发闭环:从"人工测试员"到"需求驱动"的转变
ai编程·音视频开发
冬奇Lab1 个月前
一天一个开源项目(第17篇):ViMax - 多智能体视频生成框架,导演、编剧、制片人全包
开源·音视频开发
冬奇Lab1 个月前
一天一个开源项目(第16篇):Code2Video - 用代码生成高质量教学视频的智能框架
开源·aigc·音视频开发
u1301301 个月前
深入理解 M3U8 与 HLS 协议:从原理到实战解析
前端·音视频开发·流媒体·hls·m3u8
字节架构前端2 个月前
媒体采集标准草案 与 Chromium 音频采集实现简介
前端·chrome·音视频开发
Tiny_React2 个月前
使用 Claude Code Skills 模拟的视频生成流程
人工智能·音视频开发·vibecoding
hk11242 个月前
【音视频/边缘计算】2025年度H.265/HEVC高并发解码与画质修复(Super-Resolution)基准测试报告(含沙丘/失控玩家核心样本)
ffmpeg·边缘计算·音视频开发·h.265·测试数据集
李小轰_Rex2 个月前
把手机变成听诊器!摄像头 30 秒隔空测心率 - 开箱即用
android·音视频开发
李小轰_Rex2 个月前
纯算法AEC:播录并行场景的回声消除实战笔记
android·音视频开发