longjmp

    4热度

    3回答

    我正在写一个用户空间线程库。我有一个管理每个线程的结构。我的线程非常简单,它们接受一个函数ptr及其参数,并且只运行一次该函数。 每个线程都有一个jmp_buf,我使用setjmp和longjmp在线程间切换。我无法弄清楚的一件事是如何判断此功能何时完成。 对于每个线程,我以两种方式修改jmpbuf。 我编辑PC并将其设置为函数指针,所以程序计数器接下来会出现在那里。 我也会让每个人都有自己的堆栈

    18热度

    6回答

    我必须将C用于一个项目,并且我正考虑使用longjmp/setjmp进行错误处理,因为我认为在一个中心位置处理错误比处理返回代码容易得多。如果有关于如何做到这一点的一些线索,我将不胜感激。 我特别关心资源清理是否正确完成,如果发生任何此类错误。 另外我该如何处理导致使用它们的多线程程序的错误? 更好的是,是否有一些C库已经存在用于错误/异常处理?

    32热度

    3回答

    在linux/gcc的C++中使用longjmp和setjmp关于以下方面是否安全? 异常处理(我不使用的longjmp/setjmp的执行异常处理。我想知道有什么副作用的longjmp/setjmp的会对标准异常处理) *this指针 信号 智能指针(提升的共享和侵入指针) 任何其他你可以想到的。