像“int is_forking();”之类的东西会很好=)
我遇到一个问题,即当从fork调用中调用malloc时会死锁。
答案 0 :(得分:2)
POSIX定义指定:
从应用程序的角度来看,fork()调用应该是原子的。
因此,理论上没有别的东西(malloc或其他)可以并行发生。
实际上,使用pthread_atfork()
提供自己的回调来维护is_forking
标志;您可以在调用prepare
回调时设置此标志,并在调用parent
或child
回调时将其清除。