【发布时间】:2018-03-30 08:27:33
【问题描述】:
我有一个库,它注册了一个atfork 处理程序(通过pthread_atfork()),它在调用fork() 时不支持多线程。就我而言,我不需要分叉环境可用,因为我只想在fork() 之后立即调用exec()。所以,我想要 fork() 但没有任何 atfork 处理程序。那可能吗?我会错过任何重要的边缘案例吗?
【问题讨论】:
-
如果 OpenBlas 注册了一个 通常 在多线程程序中不能可靠工作的 atfork 处理程序,那么 OpenBlas 在这方面存在缺陷。
pthread_atfork()没有其他预期的用例。如果这确实是 OpenBlas 的问题,并且您不准备自己修复它或等待维护人员修复它,那么您最好的选择可能是选择不同的 BLAS 库。