我的代码中遇到了一个问题,如下所示:
1.A process was using malloc to allocate the memory.
2.While allocation process was interrupted and respective signal handler was
called.
3.in the signal handler again malloc was called, which leads to a hang.
现在经过一些谷歌搜索,我开始知道我不应该在信号处理程序中分配内存。
有没有办法处理这个问题,不需要我避免在信号处理程序中使用malloc? 例如,检查 malloc 是否已经在进行中或保持锁定。
在信号处理程序内部,您只能调用async-signal-safe functions
。malloc
不是其中之一。不过,您可以尝试提前(在安装信号处理程序之前(预先分配要在信号处理程序中使用的内存。