共享库创建线程之前如何阻止信号?

时间:2018-07-13 22:17:18

标签: c linux shared-libraries

我正在处理需要在每个线程中阻止某些信号的应用程序。该应用还动态链接了一个库(libcpprest.so),该库在初始化期间创建了一个线程池。自然,由于主可执行文件没有机会执行任何代码,因此这些线程将信号畅通无阻-导致神秘的崩溃。

是否可以在动态链接库有机会创建线程之前阻塞信号?

(我知道)不可接受的解决方案:

  • 静态链接库,并使用init_priority确保信号尽快被阻止

  • 使用“启动程序”实用程序来阻止信号并启动可执行文件(它将继承信号掩码)

1 个答案:

答案 0 :(得分:0)

似乎不可能-如果共享库确实需要这么早地创建线程,则共享库应阻止已创建线程中的所有信号。