[asterisk-dev] [Code Review] Use loader flag to solve ABI differences of DEBUG_THREADS

Tilghman Lesher reviewboard at asterisk.org
Mon Jan 24 04:37:41 CST 2011

This is an automatically generated e-mail. To reply, visit:

(Updated 2011-01-24 04:37:41.303543)

Review request for Asterisk Developers.


Eight months ago, a fix went in to solve the problem of loading modules that were compiled with a different value of DEBUG_THREADS than the core Asterisk binary, which results in differences in the structure of a mutex.  Unfortunately, this did not take into account the size of the mutex structure, especially as it pertains to chan_iax2.  The result is that chan_iax2, starting with 1.8, now takes up 100MB of memory.  This is primarily due to the 3016 bytes used for each mutex, which is in each astobj2, and we allocate 32767 of them at boot, one for each possible IAX2 source number.  This change backs out that changeset and instead adds a flag to the loader, to ensure that the value of DEBUG_THREADS for each module loaded is the same value as was compiled for the core Asterisk binary.

This addresses bug 18194.

Diffs (updated)

  /branches/1.8/include/asterisk/lock.h 303461 
  /branches/1.8/main/heap.c 303461 
  /branches/1.8/main/lock.c 303461 
  /branches/1.8/main/utils.c 303461 

Diff: https://reviewboard.asterisk.org/r/1066/diff


Compiled Asterisk both with and without DEBUG_THREADS, and for each, added a module to the directory that was from the opposite DEBUG_THREADS status.  As predicted, Asterisk refused to load the module with a different compile-time setting of DEBUG_THREADS.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110124/ae1185c8/attachment.htm>

More information about the asterisk-dev mailing list