Возможный дубликат:
Malloc потокобезопасен?
Я немного не смущен, пока читаю "Интерфейс программирования Linux".
В книге говорится, что malloc не является реентерабельным, так как он манипулирует структурой данных глобального связанного списка, но делает потокобезопасным использование мьютекса.
Я немного запутался в этом: поскольку он поточно-безопасный с использованием мьютекса и, следовательно, может быть вызван несколькими потоками одновременно, почему он не является повторной функцией? (если мы говорим, что реентерабель означает, что он может быть вызван более чем одним абонентом одновременно)
Другой вопрос, что, поскольку malloc является потокобезопасным, можем ли мы поместить его в обработчик сигнала? Я думаю, что ответ да, но я не уверен, так как согласно этой книге, он говорит, что в обработчик сигнала может быть помещена только функция реентера или асинхронного сигнала.
Может кто-нибудь объяснить это мне?