我有一个主要用C编写的库,它的某些部分应该是线程安全的,我使用全局自旋锁来保护代码的关键部分。
现在我的问题是:
我应该从一个受自旋锁保护的关键部分内部调用一些用户回调,并且如果这些回调生成异常,在Windows上我有一个_ 尝试/ _最终在C中能够即使发生错误也要离开临界区。我也可以在UNIX上完成这个吗?
答案 0 :(得分:1)
这称为结构化异常处理。可以使用setjmp
和longjmp
来完成。它已经在C中使用了很长时间。有关详细信息,请参阅此处:http://www.freetype.org/david/reliable-c.html