Why can\'t malloc be used in signal handlers? What can \"happen wrong\"?
A signal handler can be called at any time, including during times when another call to malloc
is in progress. If this happens, one of two things will occur:
malloc
will be unable to acquire the heap lock.malloc
does acquire the lock (or doesn't think it needs it), then proceeds to render the heap inconsistent, leading to a later crash.