mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-24 05:38:11 +00:00
Previously, DETECT_DEADLOCKS depended on DEBUG_THREADS.
Unfortunately, DEBUG_THREADS adds a lot of lock tracking overhead
to all of the lock lifecycle calls whereas DETECT_DEADLOCKS just
causes the lock calls to loop over trylock in 200us intervals until
the lock is obtained and spits out log messages if it takes more
than 5 seconds. From a code perspective, the only reason they were
tied together was for logging. So... The ifdefs in lock.c were
refactored to allow DETECT_DEADLOCKS to be enabled without
also enabling DEBUG_THREADS.
Resolves: #321
UserNote: You no longer need to select DEBUG_THREADS to use
DETECT_DEADLOCKS. This removes a significant amount of overhead
if you just want to detect possible deadlocks vs needing full
lock tracing.
(cherry picked from commit e1050b4add)
27 lines
1.1 KiB
XML
27 lines
1.1 KiB
XML
<category name="MENUSELECT_CFLAGS" displayname="Compiler Flags - Development">
|
|
<member name="MTX_PROFILE" displayname="Enable Code Profiling Using TSC Counters">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="DEBUG_SCHEDULER" displayname="Enable Scheduler Debugging Output">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="DEBUG_THREADLOCALS" displayname="Enable Thread-Local-Storage Debugging">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="DETECT_DEADLOCKS" displayname="Detect Deadlocks">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="DUMP_SCHEDULER" displayname="Dump Scheduler Contents for Debugging">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="DO_CRASH" displayname="Crash on fatal errors">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="THREAD_CRASH" displayname="Crash on mutex errors">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
<member name="TEST_FRAMEWORK" displayname="Enable Test Framework API">
|
|
<support_level>extended</support_level>
|
|
</member>
|
|
</category>
|