如何检查马洛克是否持有锁



我的代码中遇到了一个问题,如下所示:

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 functionsmalloc不是其中之一。不过,您可以尝试提前(在安装信号处理程序之前(预先分配要在信号处理程序中使用的内存。

最新更新