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

作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音

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

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

1-1

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

1-2


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

1-3

1-3


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



版权所属 xianwanzhiyin.net 罗上文 2023 all right reserved,powered by Gitbook该文件修订时间: 2024-01-08 01:12:45

results matching ""

    No results matching ""