【发布时间】:2019-10-22 10:24:36
【问题描述】:
当您有一个在 c 语言中调用 longjmp 的线程时会发生什么。我知道当程序在单个线程上时,PC 会被放回创建jmp_buf 时的地址,并且处理器的寄存器会恢复到那个时间点。
- 如果在线程内部调用了
setjmp,然后又调用了longjmp,那么一切都可能正常吗? - 如果在任何线程存在之前调用
setjmp,然后一个线程在该jmp_buf上调用longjmp,它是否会杀死所有其他线程,因为在创建jmp_buf时它们不存在?
【问题讨论】:
标签: c multithreading thread-safety pthreads