From: Russell Bryant Date: Wed, 3 Nov 2004 02:03:43 +0000 (+0000) Subject: Use getpid (non-linux) or gettid(linux) for thread identification (bug #2745) X-Git-Tag: 1.0.11.1~402 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec25eab17faccb663f62fb4d452fb65e5bd21872;p=thirdparty%2Fasterisk.git Use getpid (non-linux) or gettid(linux) for thread identification (bug #2745) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@4153 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/logger.c b/logger.c index 683c186da4..84f99b5c30 100755 --- a/logger.c +++ b/logger.c @@ -48,6 +48,13 @@ static int syslog_level_map[] = { #define MAX_MSG_QUEUE 200 +#ifdef __linux__ +#include +#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);