sigprocmask()导致段错误

时间:2010-01-31 05:32:46

标签: linux multithreading sigprocmask

在多线程应用程序中使用时,是否有任何众所周知的原因导致sigprocmask()出现段错误?

我有一个使用clone()创建多个线程的应用程序。我已经确定,由于某些原因,当我使用sigprocmask时,会出现段错误(尽管不是所有时间)。从backtrace()开始,当我在siglongjmp()之后使用sigprocmask()时,似乎也发生了段错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

检查第二个和第三个参数。如果它们不是NULL,请确保它们都是指向sigset_t的有效指针。

请注意,sigprocmask()仅为单线程进程正式定义。多线程进程应使用pthread_sigmask()代替,虽然它返回错误代码而不是errno,但它采用相同的参数。