<p>Corey Farrell has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/10520">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">lock: Replace __ast_mutex_logger with ast_mutex_logger.<br><br>__ast_mutex_logger used the variable `canlog` without accepting it as a<br>argument.  Replace this macro with ast_mutex_logger which correctly<br>takes canlog as the first argument.  This will prevent confusion when<br>working with lock.h code, many of the function declare are canlog<br>variable and in some cases it appeared to be unused.<br><br>Change-Id: I83b372cb0654c5c18eadc512f65a57fa6c2e9853<br>---<br>M include/asterisk/lock.h<br>M main/lock.c<br>M utils/extconf.c<br>3 files changed, 64 insertions(+), 63 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/20/10520/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h</span><br><span>index b409a27..9ce2f01 100644</span><br><span>--- a/include/asterisk/lock.h</span><br><span>+++ b/include/asterisk/lock.h</span><br><span>@@ -241,7 +241,8 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define __ast_mutex_logger(...)  do { if (canlog) ast_log(LOG_ERROR, __VA_ARGS__); else fprintf(stderr, __VA_ARGS__); } while (0)</span><br><span style="color: hsl(120, 100%, 40%);">+#define ast_mutex_logger(canlog, ...)  do { if (canlog) ast_log(LOG_ERROR, __VA_ARGS__); else fprintf(stderr, __VA_ARGS__); } while (0)</span><br><span style="color: hsl(120, 100%, 40%);">+#define __ast_mutex_logger(...) ast_mutex_logger(canlog, __VA_ARGS__)</span><br><span> </span><br><span> #ifdef THREAD_CRASH</span><br><span> #define DO_THREAD_CRASH do { *((int *)(0)) = 1; } while(0)</span><br><span>diff --git a/main/lock.c b/main/lock.c</span><br><span>index 5ad9e13..b260b19 100644</span><br><span>--- a/main/lock.c</span><br><span>+++ b/main/lock.c</span><br><span>@@ -62,7 +62,7 @@</span><br><span>    strings = backtrace_symbols(bt->addresses, bt->num_frames);</span><br><span> </span><br><span>        for (i = 0; i < bt->num_frames; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-            __ast_mutex_logger("%s\n", strings[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s\n", strings[i]);</span><br><span>      }</span><br><span> </span><br><span>        ast_std_free(strings);</span><br><span>@@ -141,7 +141,7 @@</span><br><span>         if ((t->mutex) != ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span>                int canlog = tracking && strcmp(filename, "logger.c");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            __ast_mutex_logger("%s line %d (%s): NOTICE: mutex '%s' is already initialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+         ast_mutex_logger(canlog, "%s line %d (%s): NOTICE: mutex '%s' is already initialized.\n",</span><br><span>                             filename, lineno, func, mutex_name);</span><br><span>              DO_THREAD_CRASH;</span><br><span>             return EBUSY;</span><br><span>@@ -178,7 +178,7 @@</span><br><span>           * linked with libpthread.</span><br><span>            * This is not an error condition if the mutex is created on the fly.</span><br><span>                 */</span><br><span style="color: hsl(0, 100%, 40%);">-             __ast_mutex_logger("%s line %d (%s): NOTICE: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+               ast_mutex_logger(canlog, "%s line %d (%s): NOTICE: mutex '%s' is uninitialized.\n",</span><br><span>                                   filename, lineno, func, mutex_name);</span><br><span>              DO_THREAD_CRASH;</span><br><span>             res = EINVAL;</span><br><span>@@ -192,15 +192,15 @@</span><br><span>                pthread_mutex_unlock(&t->mutex);</span><br><span>              break;</span><br><span>       case EINVAL:</span><br><span style="color: hsl(0, 100%, 40%);">-            __ast_mutex_logger("%s line %d (%s): Error: attempt to destroy invalid mutex '%s'.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error: attempt to destroy invalid mutex '%s'.\n",</span><br><span>                                 filename, lineno, func, mutex_name);</span><br><span>               break;</span><br><span>       case EBUSY:</span><br><span style="color: hsl(0, 100%, 40%);">-             __ast_mutex_logger("%s line %d (%s): Error: attempt to destroy locked mutex '%s'.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+               ast_mutex_logger(canlog, "%s line %d (%s): Error: attempt to destroy locked mutex '%s'.\n",</span><br><span>                                   filename, lineno, func, mutex_name);</span><br><span>              if (lt) {</span><br><span>                    ast_reentrancy_lock(lt);</span><br><span style="color: hsl(0, 100%, 40%);">-                        __ast_mutex_logger("%s line %d (%s): Error: '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       ast_mutex_logger(canlog, "%s line %d (%s): Error: '%s' was locked here.\n",</span><br><span>                                    lt->file[ROFFSET], lt->lineno[ROFFSET], lt->func[ROFFSET], mutex_name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                     __dump_backtrace(&lt->backtrace[ROFFSET], canlog);</span><br><span>@@ -215,7 +215,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span>  if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error destroying mutex %s: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error destroying mutex %s: %s\n",</span><br><span>                                  filename, lineno, func, mutex_name, strerror(res));</span><br><span>       }</span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>@@ -284,14 +284,14 @@</span><br><span>                  if (res == EBUSY) {</span><br><span>                          wait_time = time(NULL) - seconds;</span><br><span>                            if (wait_time > reported_wait && (wait_time % 5) == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                                     __ast_mutex_logger("%s line %d (%s): Deadlock? waited %d sec for mutex '%s'?\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                    ast_mutex_logger(canlog, "%s line %d (%s): Deadlock? waited %d sec for mutex '%s'?\n",</span><br><span>                                                        filename, lineno, func, (int) wait_time, mutex_name);</span><br><span>                                     if (lt) {</span><br><span>                                            ast_reentrancy_lock(lt);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                                                 __dump_backtrace(&lt->backtrace[lt->reentrancy], canlog);</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-                                           __ast_mutex_logger("%s line %d (%s): '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                              ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked here.\n",</span><br><span>                                                                  lt->file[ROFFSET], lt->lineno[ROFFSET],</span><br><span>                                                                lt->func[ROFFSET], mutex_name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>@@ -325,7 +325,7 @@</span><br><span>                      lt->thread_id[lt->reentrancy] = pthread_self();</span><br><span>                        lt->reentrancy++;</span><br><span>                 } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        __ast_mutex_logger("%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       ast_mutex_logger(canlog, "%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span>                                                           filename, lineno, func, mutex_name);</span><br><span>              }</span><br><span>            ast_reentrancy_unlock(lt);</span><br><span>@@ -343,7 +343,7 @@</span><br><span>             ast_remove_lock_info(t, bt);</span><br><span>         }</span><br><span>    if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error obtaining mutex: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          ast_mutex_logger(canlog, "%s line %d (%s): Error obtaining mutex: %s\n",</span><br><span>                              filename, lineno, func, strerror(res));</span><br><span>           DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -394,7 +394,7 @@</span><br><span>                      lt->thread_id[lt->reentrancy] = pthread_self();</span><br><span>                        lt->reentrancy++;</span><br><span>                 } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        __ast_mutex_logger("%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       ast_mutex_logger(canlog, "%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span>                                           filename, lineno, func, mutex_name);</span><br><span>              }</span><br><span>            ast_reentrancy_unlock(lt);</span><br><span>@@ -419,7 +419,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>       if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                    filename, lineno, func, mutex_name);</span><br><span>              DO_THREAD_CRASH;</span><br><span>             return EINVAL;</span><br><span>@@ -430,9 +430,9 @@</span><br><span>         if (lt) {</span><br><span>            ast_reentrancy_lock(lt);</span><br><span>             if (lt->reentrancy && (lt->thread_id[ROFFSET] != pthread_self())) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       __ast_mutex_logger("%s line %d (%s): attempted unlock mutex '%s' without owning it!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                     ast_mutex_logger(canlog, "%s line %d (%s): attempted unlock mutex '%s' without owning it!\n",</span><br><span>                                         filename, lineno, func, mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                      ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked here.\n",</span><br><span>                                          lt->file[ROFFSET], lt->lineno[ROFFSET], lt->func[ROFFSET], mutex_name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                      __dump_backtrace(&lt->backtrace[ROFFSET], canlog);</span><br><span>@@ -441,7 +441,7 @@</span><br><span>              }</span><br><span> </span><br><span>                if (--lt->reentrancy < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       __ast_mutex_logger("%s line %d (%s): mutex '%s' freed more times than we've locked!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                 ast_mutex_logger(canlog, "%s line %d (%s): mutex '%s' freed more times than we've locked!\n",</span><br><span>                                     filename, lineno, func, mutex_name);</span><br><span>                      lt->reentrancy = 0;</span><br><span>               }</span><br><span>@@ -468,7 +468,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span>  if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error releasing mutex: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          ast_mutex_logger(canlog, "%s line %d (%s): Error releasing mutex: %s\n",</span><br><span>                              filename, lineno, func, strerror(res));</span><br><span>           DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -538,7 +538,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>        if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                    filename, lineno, func, mutex_name);</span><br><span>              DO_THREAD_CRASH;</span><br><span>             return EINVAL;</span><br><span>@@ -549,16 +549,16 @@</span><br><span>       if (lt) {</span><br><span>            ast_reentrancy_lock(lt);</span><br><span>             if (lt->reentrancy && (lt->thread_id[ROFFSET] != pthread_self())) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       __ast_mutex_logger("%s line %d (%s): attempted wait using mutex '%s' without owning it!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                 ast_mutex_logger(canlog, "%s line %d (%s): attempted wait using mutex '%s' without owning it!\n",</span><br><span>                                     filename, lineno, func, mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                      ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked here.\n",</span><br><span>                                          lt->file[ROFFSET], lt->lineno[ROFFSET], lt->func[ROFFSET], mutex_name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                      __dump_backtrace(&lt->backtrace[ROFFSET], canlog);</span><br><span> #endif</span><br><span>                  DO_THREAD_CRASH;</span><br><span>             } else if (lt->reentrancy <= 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): attempted wait using an unlocked mutex '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                        ast_mutex_logger(canlog, "%s line %d (%s): attempted wait using an unlocked mutex '%s'\n",</span><br><span>                                            filename, lineno, func, mutex_name);</span><br><span>                      DO_THREAD_CRASH;</span><br><span>             }</span><br><span>@@ -578,7 +578,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span>  if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error waiting on condition mutex '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error waiting on condition mutex '%s'\n",</span><br><span>                                  filename, lineno, func, strerror(res));</span><br><span>           DO_THREAD_CRASH;</span><br><span>     } else if (lt) {</span><br><span>@@ -603,7 +603,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>         if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                    filename, lineno, func, mutex_name);</span><br><span>              DO_THREAD_CRASH;</span><br><span>             return EINVAL;</span><br><span>@@ -614,16 +614,16 @@</span><br><span>       if (lt) {</span><br><span>            ast_reentrancy_lock(lt);</span><br><span>             if (lt->reentrancy && (lt->thread_id[ROFFSET] != pthread_self())) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       __ast_mutex_logger("%s line %d (%s): attempted wait using mutex '%s' without owning it!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                 ast_mutex_logger(canlog, "%s line %d (%s): attempted wait using mutex '%s' without owning it!\n",</span><br><span>                                     filename, lineno, func, mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                      ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked here.\n",</span><br><span>                                          lt->file[ROFFSET], lt->lineno[ROFFSET], lt->func[ROFFSET], mutex_name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                      __dump_backtrace(&lt->backtrace[ROFFSET], canlog);</span><br><span> #endif</span><br><span>                  DO_THREAD_CRASH;</span><br><span>             } else if (lt->reentrancy <= 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): attempted wait using an unlocked mutex '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                        ast_mutex_logger(canlog, "%s line %d (%s): attempted wait using an unlocked mutex '%s'\n",</span><br><span>                                            filename, lineno, func, mutex_name);</span><br><span>                      DO_THREAD_CRASH;</span><br><span>             }</span><br><span>@@ -643,7 +643,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span>  if (res && (res != ETIMEDOUT)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                __ast_mutex_logger("%s line %d (%s): Error waiting on condition mutex '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error waiting on condition mutex '%s'\n",</span><br><span>                                  filename, lineno, func, strerror(res));</span><br><span>           DO_THREAD_CRASH;</span><br><span>     } else if (lt) {</span><br><span>@@ -665,7 +665,7 @@</span><br><span>       if (t->lock != ((pthread_rwlock_t) __AST_RWLOCK_INIT_VALUE)) {</span><br><span>            int canlog = tracking && strcmp(filename, "logger.c");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            __ast_mutex_logger("%s line %d (%s): Warning: rwlock '%s' is already initialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+               ast_mutex_logger(canlog, "%s line %d (%s): Warning: rwlock '%s' is already initialized.\n",</span><br><span>                                filename, lineno, func, rwlock_name);</span><br><span>                DO_THREAD_CRASH;</span><br><span>             return EBUSY;</span><br><span>@@ -697,7 +697,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>    if (t->lock == ((pthread_rwlock_t) __AST_RWLOCK_INIT_VALUE)) {</span><br><span style="color: hsl(0, 100%, 40%);">-               __ast_mutex_logger("%s line %d (%s): Warning: rwlock '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s line %d (%s): Warning: rwlock '%s' is uninitialized.\n",</span><br><span>                                 filename, lineno, func, rwlock_name);</span><br><span>             DO_THREAD_CRASH;</span><br><span>             res = EINVAL;</span><br><span>@@ -710,7 +710,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span>      if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error destroying rwlock %s: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s line %d (%s): Error destroying rwlock %s: %s\n",</span><br><span>                              filename, lineno, func, rwlock_name, strerror(res));</span><br><span>         }</span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>@@ -746,7 +746,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS) && defined(CAN_COMPARE_MUTEX_TO_INIT_VALUE)</span><br><span>      if ((t->lock) == ((pthread_rwlock_t) __AST_RWLOCK_INIT_VALUE)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             __ast_mutex_logger("%s line %d (%s): Warning: rwlock '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s line %d (%s): Warning: rwlock '%s' is uninitialized.\n",</span><br><span>                                 filename, line, func, name);</span><br><span>              DO_THREAD_CRASH;</span><br><span>             return EINVAL;</span><br><span>@@ -781,7 +781,7 @@</span><br><span>                 }</span><br><span> </span><br><span>                if (lock_found && --lt->reentrancy < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): rwlock '%s' freed more times than we've locked!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                        ast_mutex_logger(canlog, "%s line %d (%s): rwlock '%s' freed more times than we've locked!\n",</span><br><span>                                         filename, line, func, name);</span><br><span>                         lt->reentrancy = 0;</span><br><span>               }</span><br><span>@@ -796,7 +796,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span>  if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error releasing rwlock: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+         ast_mutex_logger(canlog, "%s line %d (%s): Error releasing rwlock: %s\n",</span><br><span>                          filename, line, func, strerror(res));</span><br><span>                DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -843,14 +843,14 @@</span><br><span>                    if (res == EBUSY) {</span><br><span>                          wait_time = time(NULL) - seconds;</span><br><span>                            if (wait_time > reported_wait && (wait_time % 5) == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                                     __ast_mutex_logger("%s line %d (%s): Deadlock? waited %d sec for readlock '%s'?\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                 ast_mutex_logger(canlog, "%s line %d (%s): Deadlock? waited %d sec for readlock '%s'?\n",</span><br><span>                                          filename, line, func, (int)wait_time, name);</span><br><span>                                         if (lt) {</span><br><span>                                            ast_reentrancy_lock(lt);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                                                 __dump_backtrace(&lt->backtrace[lt->reentrancy], canlog);</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-                                           __ast_mutex_logger("%s line %d (%s): '%s' was locked  here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                             ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked  here.\n",</span><br><span>                                                              lt->file[lt->reentrancy-1], lt->lineno[lt->reentrancy-1],</span><br><span>                                                                lt->func[lt->reentrancy-1], name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>@@ -894,7 +894,7 @@</span><br><span>   }</span><br><span> </span><br><span>        if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error obtaining read lock: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error obtaining read lock: %s\n",</span><br><span>                               filename, line, func, strerror(res));</span><br><span>                DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -941,14 +941,14 @@</span><br><span>                    if (res == EBUSY) {</span><br><span>                          wait_time = time(NULL) - seconds;</span><br><span>                            if (wait_time > reported_wait && (wait_time % 5) == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                                     __ast_mutex_logger("%s line %d (%s): Deadlock? waited %d sec for writelock '%s'?\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                        ast_mutex_logger(canlog, "%s line %d (%s): Deadlock? waited %d sec for writelock '%s'?\n",</span><br><span>                                                 filename, line, func, (int)wait_time, name);</span><br><span>                                         if (lt) {</span><br><span>                                            ast_reentrancy_lock(lt);</span><br><span> #ifdef HAVE_BKTR</span><br><span>                                                 __dump_backtrace(&lt->backtrace[lt->reentrancy], canlog);</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-                                           __ast_mutex_logger("%s line %d (%s): '%s' was locked  here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                             ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked  here.\n",</span><br><span>                                                              lt->file[lt->reentrancy-1], lt->lineno[lt->reentrancy-1],</span><br><span>                                                                lt->func[lt->reentrancy-1], name);</span><br><span> #ifdef HAVE_BKTR</span><br><span>@@ -991,7 +991,7 @@</span><br><span>           ast_remove_lock_info(t, bt);</span><br><span>         }</span><br><span>    if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error obtaining write lock: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s line %d (%s): Error obtaining write lock: %s\n",</span><br><span>                              filename, line, func, strerror(res));</span><br><span>                DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -1073,7 +1073,7 @@</span><br><span>            ast_remove_lock_info(t, bt);</span><br><span>         }</span><br><span>    if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error obtaining read lock: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error obtaining read lock: %s\n",</span><br><span>                               filename, line, func, strerror(res));</span><br><span>                DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -1155,7 +1155,7 @@</span><br><span>            ast_remove_lock_info(t, bt);</span><br><span>         }</span><br><span>    if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              __ast_mutex_logger("%s line %d (%s): Error obtaining read lock: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error obtaining read lock: %s\n",</span><br><span>                               filename, line, func, strerror(res));</span><br><span>                DO_THREAD_CRASH;</span><br><span>     }</span><br><span>diff --git a/utils/extconf.c b/utils/extconf.c</span><br><span>index 2beaef4..9e07073 100644</span><br><span>--- a/utils/extconf.c</span><br><span>+++ b/utils/extconf.c</span><br><span>@@ -196,7 +196,7 @@</span><br><span> </span><br><span> #ifdef DEBUG_THREADS</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define __ast_mutex_logger(...)  do { if (canlog) ast_log(LOG_ERROR, __VA_ARGS__); else fprintf(stderr, __VA_ARGS__); } while (0)</span><br><span style="color: hsl(120, 100%, 40%);">+#define ast_mutex_logger(canlog, ...)  do { if (canlog) ast_log(LOG_ERROR, __VA_ARGS__); else fprintf(stderr, __VA_ARGS__); } while (0)</span><br><span> </span><br><span> #ifdef THREAD_CRASH</span><br><span> #define DO_THREAD_CRASH do { *((int *)(0)) = 1; } while(0)</span><br><span>@@ -239,9 +239,9 @@</span><br><span> </span><br><span>        if ((t->mutex) != ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span>                if ((t->mutex) != (empty_mutex)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                   __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is already initialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                  ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is already initialized.\n",</span><br><span>                                      filename, lineno, func, mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-                 __ast_mutex_logger("%s line %d (%s): Error: previously initialization of mutex '%s'.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                    ast_mutex_logger(canlog, "%s line %d (%s): Error: previously initialization of mutex '%s'.\n",</span><br><span>                                        t->file[0], t->lineno[0], t->func[0], mutex_name);</span><br><span>                       DO_THREAD_CRASH;</span><br><span>                     return 0;</span><br><span>@@ -278,7 +278,7 @@</span><br><span> </span><br><span> #ifdef AST_MUTEX_INIT_W_CONSTRUCTORS</span><br><span>  if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                    filename, lineno, func, mutex_name);</span><br><span>      }</span><br><span> #endif</span><br><span>@@ -289,19 +289,19 @@</span><br><span>          pthread_mutex_unlock(&t->mutex);</span><br><span>              break;</span><br><span>       case EINVAL:</span><br><span style="color: hsl(0, 100%, 40%);">-            __ast_mutex_logger("%s line %d (%s): Error: attempt to destroy invalid mutex '%s'.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): Error: attempt to destroy invalid mutex '%s'.\n",</span><br><span>                                 filename, lineno, func, mutex_name);</span><br><span>               break;</span><br><span>       case EBUSY:</span><br><span style="color: hsl(0, 100%, 40%);">-             __ast_mutex_logger("%s line %d (%s): Error: attempt to destroy locked mutex '%s'.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+               ast_mutex_logger(canlog, "%s line %d (%s): Error: attempt to destroy locked mutex '%s'.\n",</span><br><span>                                   filename, lineno, func, mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-         __ast_mutex_logger("%s line %d (%s): Error: '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+               ast_mutex_logger(canlog, "%s line %d (%s): Error: '%s' was locked here.\n",</span><br><span>                                   t->file[t->reentrancy-1], t->lineno[t->reentrancy-1], t->func[t->reentrancy-1], mutex_name);</span><br><span>            break;</span><br><span>       }</span><br><span> </span><br><span>        if ((res = pthread_mutex_destroy(&t->mutex)))</span><br><span style="color: hsl(0, 100%, 40%);">-            __ast_mutex_logger("%s line %d (%s): Error destroying mutex: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+         ast_mutex_logger(canlog, "%s line %d (%s): Error destroying mutex: %s\n",</span><br><span>                             filename, lineno, func, strerror(res));</span><br><span> #ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP</span><br><span>         else</span><br><span>@@ -322,7 +322,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS)</span><br><span>         if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                  filename, lineno, func, mutex_name);</span><br><span>                ast_mutex_init(t);</span><br><span>   }</span><br><span>@@ -343,9 +343,9 @@</span><br><span>                      if (res == EBUSY) {</span><br><span>                          current = time(NULL);</span><br><span>                                if ((current - seconds) && (!((current - seconds) % 5))) {</span><br><span style="color: hsl(0, 100%, 40%);">-                                      __ast_mutex_logger("%s line %d (%s): Deadlock? waited %d sec for mutex '%s'?\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                    ast_mutex_logger(canlog, "%s line %d (%s): Deadlock? waited %d sec for mutex '%s'?\n",</span><br><span>                                                        filename, lineno, func, (int)(current - seconds), mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-                                       __ast_mutex_logger("%s line %d (%s): '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                      ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked here.\n",</span><br><span>                                                          t->file[t->reentrancy-1], t->lineno[t->reentrancy-1],</span><br><span>                                                            t->func[t->reentrancy-1], mutex_name);</span><br><span>                              }</span><br><span>@@ -371,11 +371,11 @@</span><br><span>                    t->thread[t->reentrancy] = pthread_self();</span><br><span>                     t->reentrancy++;</span><br><span>          } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        __ast_mutex_logger("%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       ast_mutex_logger(canlog, "%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span>                                                           filename, lineno, func, mutex_name);</span><br><span>              }</span><br><span>    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                __ast_mutex_logger("%s line %d (%s): Error obtaining mutex: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          ast_mutex_logger(canlog, "%s line %d (%s): Error obtaining mutex: %s\n",</span><br><span>                              filename, lineno, func, strerror(errno));</span><br><span>                 DO_THREAD_CRASH;</span><br><span>     }</span><br><span>@@ -391,7 +391,7 @@</span><br><span> </span><br><span> #if defined(AST_MUTEX_INIT_W_CONSTRUCTORS)</span><br><span>    if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                    filename, lineno, func, mutex_name);</span><br><span>              ast_mutex_init(t);</span><br><span>   }</span><br><span>@@ -405,11 +405,11 @@</span><br><span>                    t->thread[t->reentrancy] = pthread_self();</span><br><span>                     t->reentrancy++;</span><br><span>          } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        __ast_mutex_logger("%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       ast_mutex_logger(canlog, "%s line %d (%s): '%s' really deep reentrancy!\n",</span><br><span>                                           filename, lineno, func, mutex_name);</span><br><span>              }</span><br><span>    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                __ast_mutex_logger("%s line %d (%s): Warning: '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s line %d (%s): Warning: '%s' was locked here.\n",</span><br><span>                                    t->file[t->reentrancy-1], t->lineno[t->reentrancy-1], t->func[t->reentrancy-1], mutex_name);</span><br><span>         }</span><br><span> </span><br><span>@@ -424,21 +424,21 @@</span><br><span> </span><br><span> #ifdef AST_MUTEX_INIT_W_CONSTRUCTORS</span><br><span>    if ((t->mutex) == ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                ast_mutex_logger(canlog, "%s line %d (%s): Error: mutex '%s' is uninitialized.\n",</span><br><span>                                    filename, lineno, func, mutex_name);</span><br><span>      }</span><br><span> #endif</span><br><span> </span><br><span>      if (t->reentrancy && (t->thread[t->reentrancy-1] != pthread_self())) {</span><br><span style="color: hsl(0, 100%, 40%);">-         __ast_mutex_logger("%s line %d (%s): attempted unlock mutex '%s' without owning it!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             ast_mutex_logger(canlog, "%s line %d (%s): attempted unlock mutex '%s' without owning it!\n",</span><br><span>                                 filename, lineno, func, mutex_name);</span><br><span style="color: hsl(0, 100%, 40%);">-         __ast_mutex_logger("%s line %d (%s): '%s' was locked here.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              ast_mutex_logger(canlog, "%s line %d (%s): '%s' was locked here.\n",</span><br><span>                                  t->file[t->reentrancy-1], t->lineno[t->reentrancy-1], t->func[t->reentrancy-1], mutex_name);</span><br><span>            DO_THREAD_CRASH;</span><br><span>     }</span><br><span> </span><br><span>        if (--t->reentrancy < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                __ast_mutex_logger("%s line %d (%s): mutex '%s' freed more times than we've locked!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+         ast_mutex_logger(canlog, "%s line %d (%s): mutex '%s' freed more times than we've locked!\n",</span><br><span>                             filename, lineno, func, mutex_name);</span><br><span>              t->reentrancy = 0;</span><br><span>        }</span><br><span>@@ -451,7 +451,7 @@</span><br><span>      }</span><br><span> </span><br><span>        if ((res = pthread_mutex_unlock(&t->mutex))) {</span><br><span style="color: hsl(0, 100%, 40%);">-           __ast_mutex_logger("%s line %d (%s): Error releasing mutex: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          ast_mutex_logger(canlog, "%s line %d (%s): Error releasing mutex: %s\n",</span><br><span>                              filename, lineno, func, strerror(res));</span><br><span>           DO_THREAD_CRASH;</span><br><span>     }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/10520">change 10520</a>. To unsubscribe, or for help writing mail filters, 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/10520"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 16 </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I83b372cb0654c5c18eadc512f65a57fa6c2e9853 </div>
<div style="display:none"> Gerrit-Change-Number: 10520 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Corey Farrell <git@cfware.com> </div>