mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +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 7e2243f9e1
)
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>
|