我需要在我的 x86 平台上使用 linux 中的上下文切换,类似于 ucontext.h,
但不幸的是 ucontext 使用内核调用来做到这一点。在我的 Xenomai 环境中,任何内核函数调用都会将系统变为辅助模式(linux 调度)
那么如何在不离开用户空间的情况下通过存储 FPU 寄存器在 x86 平台上切换上下文呢?
我找到了解决方案。使用 longjmp 而不是 swapcontext 做同样的事情,但不执行内核调用,并且不将系统切换到辅助模式。
解决方案在这里找到: http ://www.1024cores.net/home/lock-free-algorithms/tricks/fibers