我正在尝试调用longjmp。 Setjmp有效,但是longjmp给了我一个类型错误。
void thread_start_threading(void)
{
setjmp(env);
dispatch();
current_thread->function(current_thread->arg);
}
然后是:
void thread_yield(void)
{
longjmp(env, 9);
return;
}
它给我的错误是warning: passing argument 1 of ‘longjmp’ makes pointer from integer without a cast
我真正想要的是保存寄存器的状态,然后再恢复它们。我认为我不需要使用这个论点来做到这一点。但我可能是错的。我没有grok setjmp。
编辑:更多代码