]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Use getpid (non-linux) or gettid(linux) for thread identification (bug #2745)
authorRussell Bryant <russell@russellbryant.com>
Wed, 3 Nov 2004 02:03:43 +0000 (02:03 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 3 Nov 2004 02:03:43 +0000 (02:03 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@4153 65c4cc65-6c06-0410-ace0-fbb531ad65f3

logger.c

index 683c186da4e749f7f2fcff675c108087d2327b96..84f99b5c30092419e2f89f0569f025c67072ba3b 100755 (executable)
--- a/logger.c
+++ b/logger.c
@@ -48,6 +48,13 @@ static int syslog_level_map[] = {
 
 #define MAX_MSG_QUEUE 200
 
+#ifdef __linux__
+#include <asm/unistd.h>
+#define GETTID() syscall(__NR_gettid)
+#else
+#define GETTID() getpid()
+#endif
+
 static char dateformat[256] = "%b %e %T";              /* Original Asterisk Format */
 AST_MUTEX_DEFINE_STATIC(msglist_lock);
 AST_MUTEX_DEFINE_STATIC(loglock);
@@ -481,11 +488,11 @@ static void ast_log_vsyslog(int level, const char *file, int line, const char *f
                return;
        }
        if (level == __LOG_VERBOSE) {
-               snprintf(buf, sizeof(buf), "VERBOSE[%ld]: ", (long)pthread_self());
+               snprintf(buf, sizeof(buf), "VERBOSE[%ld]: ", (long)GETTID());
                level = __LOG_DEBUG;
        } else {
                snprintf(buf, sizeof(buf), "%s[%ld]: %s:%d in %s: ",
-                       levels[level], (long)pthread_self(), file, line, function);
+                       levels[level], (long)GETTID(), file, line, function);
        }
        vsnprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), fmt, args);
        syslog(syslog_level_map[level], "%s", buf);
@@ -543,7 +550,7 @@ void ast_log(int level, const char *file, int line, const char *function, const
                                        snprintf(buf, sizeof(buf), "%s %s[%ld]: %s:%s %s: ",
                                                date,
                                                term_color(tmp1, levels[level], colors[level], 0, sizeof(tmp1)),
-                                               (long)pthread_self(),
+                                               (long)GETTID(),
                                                term_color(tmp2, file, COLOR_BRWHITE, 0, sizeof(tmp2)),
                                                term_color(tmp3, linestr, COLOR_BRWHITE, 0, sizeof(tmp3)),
                                                term_color(tmp4, function, COLOR_BRWHITE, 0, sizeof(tmp4)));
@@ -556,7 +563,7 @@ void ast_log(int level, const char *file, int line, const char *function, const
                                }
                        } else if ((chan->logmask & (1 << level)) && (chan->fileptr)) {
                                snprintf(buf, sizeof(buf), "%s %s[%ld]: ", date,
-                                       levels[level], (long)pthread_self());
+                                       levels[level], (long)GETTID());
                                fprintf(chan->fileptr, buf);
                                va_start(ap, fmt);
                                vsnprintf(buf, sizeof(buf), fmt, ap);