From: Russell Bryant Date: Sun, 13 Feb 2005 23:43:58 +0000 (+0000) Subject: minor fix for deadlock detection, but I hope nobody has to use it :) (bug #3531) X-Git-Tag: 1.0.11.1~226 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ef097f5d7c57d5f7979c7d2bd1bbf3196abb541;p=thirdparty%2Fasterisk.git minor fix for deadlock detection, but I hope nobody has to use it :) (bug #3531) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@5025 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h index 059bc89c6c..350ea88226 100755 --- a/include/asterisk/lock.h +++ b/include/asterisk/lock.h @@ -188,17 +188,19 @@ static inline int __ast_pthread_mutex_lock(char *filename, int lineno, char *fun filename, lineno, func, mutex_name); #endif ast_mutex_init(t); - } + } #endif /* definded(AST_MUTEX_INIT_W_CONSTRUCTORS) || defined(AST_MUTEX_INIT_ON_FIRST_USE) */ #ifdef DETECT_DEADLOCKS { - time_t seconds seconds = time(NULL); + time_t seconds = time(NULL); + time_t current; do { res = pthread_mutex_trylock(&t->mutex); if (res == EBUSY) { - if ((time(NULL) - seconds) % 5) { + current = time(NULL); + if ((current - seconds) && (!((current - seconds) % 5))) { fprintf(stderr, "%s line %d (%s): Deadlock? waited %d sec for mutex '%s'?\n", - filename, lineno, func, (time(NULL) - seconds), mutex_name); + filename, lineno, func, (int)(current - seconds), mutex_name); fprintf(stderr, "%s line %d (%s): '%s' was locked here.\n", t->file, t->lineno, t->func, mutex_name); }