[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r5164 - GNUnet/src/util/threads
From: |
gnunet |
Subject: |
[GNUnet-SVN] r5164 - GNUnet/src/util/threads |
Date: |
Thu, 28 Jun 2007 18:16:52 -0600 (MDT) |
Author: grothoff
Date: 2007-06-28 18:16:49 -0600 (Thu, 28 Jun 2007)
New Revision: 5164
Modified:
GNUnet/src/util/threads/mutex.c
Log:
log who locked for too long
Modified: GNUnet/src/util/threads/mutex.c
===================================================================
--- GNUnet/src/util/threads/mutex.c 2007-06-29 00:09:23 UTC (rev 5163)
+++ GNUnet/src/util/threads/mutex.c 2007-06-29 00:16:49 UTC (rev 5164)
@@ -64,6 +64,9 @@
typedef struct MUTEX {
pthread_mutex_t pt;
+ const char * locked_file;
+ cron_t locked_time;
+ unsigned int locked_line;
} Mutex;
Mutex * MUTEX_CREATE(int isRecursive) {
@@ -152,12 +155,25 @@
"pthread_mutex_lock");
GE_ASSERT(NULL, 0);
}
+ mutex->locked_file = file;
+ mutex->locked_line = line;
+ mutex->locked_time = end;
}
void MUTEX_UNLOCK(Mutex * mutex) {
int ret;
+ cron_t now;
GE_ASSERT(NULL, mutex != NULL);
+ now = get_time();
+ if ( (now - mutex->locked_time > REALTIME_LIMIT) &&
+ (REALTIME_LIMIT != 0) )
+ GE_LOG(NULL,
+ GE_DEVELOPER | GE_WARNING | GE_IMMEDIATE,
+ _("Lock aquired for too long (%llu ms) at %s:%u\n"),
+ now - mutex->locked_time,
+ mutex->locked_file,
+ mutex->locked_line);
ret = pthread_mutex_unlock(&mutex->pt);
if (ret != 0) {
if (ret == EINVAL)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r5164 - GNUnet/src/util/threads,
gnunet <=