<p>Joshua Colp <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/6888">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Joshua Colp: Looks good to me, but someone else must approve; Approved for Submit
  Richard Mudgett: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Single API for ast_store_lock_info and ast_remove_lock_info.<br><br>This makes the 'bt' parameter unconditional for ast_store_lock_info and<br>ast_remove_lock_info.  The 'bt' parameter is unused when HAVE_BKTR is<br>undefined.<br><br>Change-Id: Ieced0e920928b735a39c3b5952b806c473d67453<br>---<br>M include/asterisk/lock.h<br>M main/lock.c<br>M main/utils.c<br>M utils/ael_main.c<br>M utils/check_expr.c<br>M utils/conf2ael.c<br>6 files changed, 16 insertions(+), 129 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h<br>index 5b6817f..58c9a83 100644<br>--- a/include/asterisk/lock.h<br>+++ b/include/asterisk/lock.h<br>@@ -240,13 +240,8 @@<br>  * lock info struct.  The lock is marked as pending as the thread is waiting<br>  * on the lock.  ast_mark_lock_acquired() will mark it as held by this thread.<br>  */<br>-#ifdef HAVE_BKTR<br> void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>      int line_num, const char *func, const char *lock_name, void *lock_addr, struct ast_bt *bt);<br>-#else<br>-void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>-        int line_num, const char *func, const char *lock_name, void *lock_addr);<br>-#endif /* HAVE_BKTR */<br> <br> /*!<br>  * \brief Mark the last lock as acquired<br>@@ -264,11 +259,7 @@<br>  * this gets called by ast_mutex_unlock so that information on the lock can<br>  * be removed from the current thread's lock info struct.<br>  */<br>-#ifdef HAVE_BKTR<br> void ast_remove_lock_info(void *lock_addr, struct ast_bt *bt);<br>-#else<br>-void ast_remove_lock_info(void *lock_addr);<br>-#endif /* HAVE_BKTR */<br> void ast_suspend_lock_info(void *lock_addr);<br> void ast_restore_lock_info(void *lock_addr);<br> <br>diff --git a/main/lock.c b/main/lock.c<br>index 9c1d383..dec814f 100644<br>--- a/main/lock.c<br>+++ b/main/lock.c<br>@@ -245,9 +245,7 @@<br> #ifdef DEBUG_THREADS<br>  struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -268,11 +266,8 @@<br>                      bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_MUTEX, filename, lineno, func, mutex_name, t, bt);<br>-#else<br>-           ast_store_lock_info(AST_MUTEX, filename, lineno, func, mutex_name, t);<br> #endif<br>+              ast_store_lock_info(AST_MUTEX, filename, lineno, func, mutex_name, t, bt);<br>    }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -346,10 +341,8 @@<br>               } else {<br>                      bt = NULL;<br>            }<br>-            ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br> #endif<br>+            ast_remove_lock_info(t, bt);<br>  }<br>     if (res) {<br>            __ast_mutex_logger("%s line %d (%s): Error obtaining mutex: %s\n",<br>@@ -369,9 +362,7 @@<br> #ifdef DEBUG_THREADS<br>      struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -392,11 +383,8 @@<br>                      bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_MUTEX, filename, lineno, func, mutex_name, t, bt);<br>-#else<br>-           ast_store_lock_info(AST_MUTEX, filename, lineno, func, mutex_name, t);<br> #endif<br>+              ast_store_lock_info(AST_MUTEX, filename, lineno, func, mutex_name, t, bt);<br>    }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -433,9 +421,7 @@<br> #ifdef DEBUG_THREADS<br>         struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)<br>        if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {<br>@@ -483,11 +469,7 @@<br> #endif<br>          ast_reentrancy_unlock(lt);<br> <br>-#ifdef HAVE_BKTR<br>              ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br>-#endif<br>     }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -773,9 +755,7 @@<br> #ifdef DEBUG_THREADS<br>         struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br>    int lock_found = 0;<br> <br> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)<br>@@ -825,11 +805,7 @@<br> <br>              ast_reentrancy_unlock(lt);<br> <br>-#ifdef HAVE_BKTR<br>              ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br>-#endif<br>     }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -853,9 +829,7 @@<br> #ifdef DEBUG_THREADS<br>         struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -876,11 +850,8 @@<br>                      bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_RDLOCK, filename, line, func, name, t, bt);<br>-#else<br>-          ast_store_lock_info(AST_RDLOCK, filename, line, func, name, t);<br> #endif<br>+             ast_store_lock_info(AST_RDLOCK, filename, line, func, name, t, bt);<br>   }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -939,10 +910,8 @@<br>               } else {<br>                      bt = NULL;<br>            }<br>-            ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br> #endif<br>+            ast_remove_lock_info(t, bt);<br>  }<br> <br>  if (res) {<br>@@ -962,9 +931,7 @@<br> #ifdef DEBUG_THREADS<br>        struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -985,11 +952,8 @@<br>                      bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>-#else<br>-          ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t);<br> #endif<br>+             ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>   }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -1048,10 +1012,8 @@<br>             } else {<br>                      bt = NULL;<br>            }<br>-            ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br> #endif<br>+            ast_remove_lock_info(t, bt);<br>  }<br>     if (res) {<br>            __ast_mutex_logger("%s line %d (%s): Error obtaining write lock: %s\n",<br>@@ -1071,9 +1033,7 @@<br> #ifdef DEBUG_THREADS<br>       struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -1094,11 +1054,8 @@<br>                    bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>-#else<br>-          ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t);<br> #endif<br>+             ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>   }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -1141,10 +1098,8 @@<br>             } else {<br>                      bt = NULL;<br>            }<br>-            ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br> #endif<br>+            ast_remove_lock_info(t, bt);<br>  }<br>     if (res) {<br>            __ast_mutex_logger("%s line %d (%s): Error obtaining read lock: %s\n",<br>@@ -1164,9 +1119,7 @@<br> #ifdef DEBUG_THREADS<br>        struct ast_lock_track *lt = NULL;<br>     int canlog = t->tracking && strcmp(filename, "logger.c");<br>-#ifdef HAVE_BKTR<br>     struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -1187,11 +1140,8 @@<br>                    bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>-#else<br>-          ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t);<br> #endif<br>+             ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>   }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -1234,10 +1184,8 @@<br>             } else {<br>                      bt = NULL;<br>            }<br>-            ast_remove_lock_info(t, bt);<br>-#else<br>-         ast_remove_lock_info(t);<br> #endif<br>+            ast_remove_lock_info(t, bt);<br>  }<br>     if (res) {<br>            __ast_mutex_logger("%s line %d (%s): Error obtaining read lock: %s\n",<br>@@ -1255,9 +1203,7 @@<br> <br> #ifdef DEBUG_THREADS<br>     struct ast_lock_track *lt = NULL;<br>-#ifdef HAVE_BKTR<br>  struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -1278,11 +1224,8 @@<br>                    bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_RDLOCK, filename, line, func, name, t, bt);<br>-#else<br>-          ast_store_lock_info(AST_RDLOCK, filename, line, func, name, t);<br> #endif<br>+             ast_store_lock_info(AST_RDLOCK, filename, line, func, name, t, bt);<br>   }<br> #endif /* DEBUG_THREADS */<br> <br>@@ -1314,9 +1257,7 @@<br> <br> #ifdef DEBUG_THREADS<br>    struct ast_lock_track *lt = NULL;<br>-#ifdef HAVE_BKTR<br>  struct ast_bt *bt = NULL;<br>-#endif<br> <br>         if (t->tracking) {<br>                 lt = ast_get_reentrancy(&t->track);<br>@@ -1337,11 +1278,8 @@<br>                    bt = &lt->backtrace[lt->reentrancy];<br>                }<br>             ast_reentrancy_unlock(lt);<br>-<br>-                ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>-#else<br>-          ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t);<br> #endif<br>+             ast_store_lock_info(AST_WRLOCK, filename, line, func, name, t, bt);<br>   }<br> #endif /* DEBUG_THREADS */<br> <br>diff --git a/main/utils.c b/main/utils.c<br>index f20ccd3..a73bf9d 100644<br>--- a/main/utils.c<br>+++ b/main/utils.c<br>@@ -722,13 +722,8 @@<br> AST_THREADSTORAGE_CUSTOM(thread_lock_info, NULL, lock_info_destroy);<br> #endif /* ! LOW_MEMORY */<br> <br>-#ifdef HAVE_BKTR<br> void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>   int line_num, const char *func, const char *lock_name, void *lock_addr, struct ast_bt *bt)<br>-#else<br>-void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>- int line_num, const char *func, const char *lock_name, void *lock_addr)<br>-#endif<br> {<br> #if !defined(LOW_MEMORY)<br>       struct thr_lock_info *lock_info;<br>@@ -910,11 +905,7 @@<br> }<br> <br> <br>-#ifdef HAVE_BKTR<br> void ast_remove_lock_info(void *lock_addr, struct ast_bt *bt)<br>-#else<br>-void ast_remove_lock_info(void *lock_addr)<br>-#endif<br> {<br> #if !defined(LOW_MEMORY)<br>      struct thr_lock_info *lock_info;<br>diff --git a/utils/ael_main.c b/utils/ael_main.c<br>index f22e9a0..3a91ef1 100644<br>--- a/utils/ael_main.c<br>+++ b/utils/ael_main.c<br>@@ -601,7 +601,6 @@<br> void ast_mark_lock_acquired(void *lock_addr)<br> {<br> }<br>-#ifdef HAVE_BKTR<br> void ast_remove_lock_info(void *lock_addr, struct ast_bt *bt)<br> {<br> }<br>@@ -611,6 +610,7 @@<br> {<br> }<br> <br>+#ifdef HAVE_BKTR<br> int __ast_bt_get_addresses(struct ast_bt *bt)<br> {<br>       return 0;<br>@@ -626,15 +626,6 @@<br>               }<br>     }<br>     return foo;<br>-}<br>-#else<br>-void ast_remove_lock_info(void *lock_addr)<br>-{<br>-}<br>-<br>-void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>-    int line_num, const char *func, const char *lock_name, void *lock_addr)<br>-{<br> }<br> #endif /* HAVE_BKTR */<br> void ast_suspend_lock_info(void *lock_addr)<br>diff --git a/utils/check_expr.c b/utils/check_expr.c<br>index 201fa04..e15705e 100644<br>--- a/utils/check_expr.c<br>+++ b/utils/check_expr.c<br>@@ -55,7 +55,6 @@<br> #endif<br> <br> #ifdef DEBUG_THREADS<br>-#ifdef HAVE_BKTR<br> void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>                    int line_num, const char *func, const char *lock_name, void *lock_addr, struct ast_bt *bt);<br> void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>@@ -70,6 +69,7 @@<br>     /* not a lot to do in a standalone w/o threading! */<br> }<br> <br>+#ifdef HAVE_BKTR<br> int __ast_bt_get_addresses(struct ast_bt *bt);<br> int __ast_bt_get_addresses(struct ast_bt *bt)<br> {<br>@@ -87,20 +87,6 @@<br>                }<br>     }<br>     return foo;<br>-}<br>-#else<br>-void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>-                    int line_num, const char *func, const char *lock_name, void *lock_addr);<br>-void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>-                   int line_num, const char *func, const char *lock_name, void *lock_addr)<br>-{<br>-    /* not a lot to do in a standalone w/o threading! */<br>-}<br>-<br>-void ast_remove_lock_info(void *lock_addr);<br>-void ast_remove_lock_info(void *lock_addr)<br>-{<br>-    /* not a lot to do in a standalone w/o threading! */<br> }<br> #endif /* HAVE_BKTR */<br> <br>diff --git a/utils/conf2ael.c b/utils/conf2ael.c<br>index 5fdc570..567dc56 100644<br>--- a/utils/conf2ael.c<br>+++ b/utils/conf2ael.c<br>@@ -699,7 +699,6 @@<br> void ast_mark_lock_acquired(void *lock_addr)<br> {<br> }<br>-#ifdef HAVE_BKTR<br> void ast_remove_lock_info(void *lock_addr, struct ast_bt *bt)<br> {<br> }<br>@@ -709,6 +708,7 @@<br> {<br> }<br> <br>+#ifdef HAVE_BKTR<br> int __ast_bt_get_addresses(struct ast_bt *bt)<br> {<br>        return 0;<br>@@ -724,16 +724,6 @@<br>               }<br>     }<br>     return foo;<br>-}<br>-<br>-#else<br>-void ast_remove_lock_info(void *lock_addr)<br>-{<br>-}<br>-<br>-void ast_store_lock_info(enum ast_lock_type type, const char *filename,<br>- int line_num, const char *func, const char *lock_name, void *lock_addr)<br>-{<br> }<br> #endif /* HAVE_BKTR */<br> void ast_suspend_lock_info(void *lock_addr)<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/6888">change 6888</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/6888"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ieced0e920928b735a39c3b5952b806c473d67453 </div>
<div style="display:none"> Gerrit-Change-Number: 6888 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Corey Farrell <git@cfware.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Richard Mudgett <rmudgett@digium.com> </div>