【发布时间】:2011-05-25 23:42:26
【问题描述】:
我有一个有 10 多个线程的系统。我有一个信号处理程序来捕获 SIGSEGV。如果一个线程生成 SIGSEGV,该信号是发送给所有线程,还是只发送给生成信号的线程?
【问题讨论】:
标签: pthreads segmentation-fault
我有一个有 10 多个线程的系统。我有一个信号处理程序来捕获 SIGSEGV。如果一个线程生成 SIGSEGV,该信号是发送给所有线程,还是只发送给生成信号的线程?
【问题讨论】:
标签: pthreads segmentation-fault
SIGSEGV 是一个同步信号。它将被传递给导致无效内存访问的线程。来自signal(7):
可能会为整个进程(例如, 当使用kill(2)发送时或针对特定线程(例如,某些信号,例如 如SIGSEGV和SIGFPE,作为执行特定的结果而生成 机器语言指令是线程导向的,针对 使用pthread_kill(3)的特定线程)。过程导向的信号可能是 传递给当前没有信号的任何一个线程 被阻止。如果多个线程的信号被解除阻塞,则 内核选择一个任意线程来传递信号。
【讨论】: