QXRD  0.11.16
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
QcepMutexLocker Class Reference

#include <qcepmutexlocker.h>

Inheritance diagram for QcepMutexLocker:
Inheritance graph
[legend]
Collaboration diagram for QcepMutexLocker:
Collaboration graph
[legend]

Public Member Functions

 QcepMutexLocker (const char *file, int line, QMutex *mutex)
 
 ~QcepMutexLocker ()
 

Static Public Member Functions

static void traceLock (const char *file, int line)
 
static void dumpLocks ()
 

Private Attributes

QTime m_LockTime
 
const char * m_File
 
int m_Line
 

Detailed Description

Definition at line 8 of file qcepmutexlocker.h.

Constructor & Destructor Documentation

QcepMutexLocker::QcepMutexLocker ( const char *  file,
int  line,
QMutex *  mutex 
)

Definition at line 8 of file qcepmutexlocker.cpp.

References DEBUG_LOCKING, m_LockTime, qcepDebug(), and traceLock().

9  : QMutexLocker(mutex),
10  m_File(file),
11  m_Line(line)
12 {
13  if (qcepDebug(DEBUG_LOCKING)) {
14  m_LockTime.start();
15  traceLock(file, line);
16  }
17 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
static void traceLock(const char *file, int line)
const char * m_File

Here is the call graph for this function:

QcepMutexLocker::~QcepMutexLocker ( )

Definition at line 19 of file qcepmutexlocker.cpp.

References DEBUG_LOCKING, m_File, m_Line, m_LockTime, and qcepDebug().

20 {
21  if (qcepDebug(DEBUG_LOCKING)) {
22  if (m_LockTime.elapsed() > 1000) {
23  printf("Lock held for %d msec, file %s, line %d, thread %p\n",
24  m_LockTime.elapsed(), m_File, m_Line, QThread::currentThread());
25  }
26  }
27 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
const char * m_File

Here is the call graph for this function:

Member Function Documentation

void QcepMutexLocker::dumpLocks ( )
static

Definition at line 38 of file qcepmutexlocker.cpp.

References g_LockMap.

39 {
40  QMapIterator<QString, int> i(g_LockMap);
41 
42  while (i.hasNext()) {
43  i.next();
44 
45  printf("Key: %s : Count %d\n", qPrintable(i.key()), i.value());
46  }
47 }
QMap< QString, int > g_LockMap
void QcepMutexLocker::traceLock ( const char *  file,
int  line 
)
static

Definition at line 31 of file qcepmutexlocker.cpp.

References g_LockMap.

Referenced by QcepMutexLocker().

32 {
33  QString key = QString(file)+":"+QString::number(line);
34 
35  g_LockMap[key] += 1;
36 }
QMap< QString, int > g_LockMap

Here is the caller graph for this function:

Member Data Documentation

const char* QcepMutexLocker::m_File
private

Definition at line 19 of file qcepmutexlocker.h.

Referenced by ~QcepMutexLocker().

int QcepMutexLocker::m_Line
private

Definition at line 20 of file qcepmutexlocker.h.

Referenced by ~QcepMutexLocker().

QTime QcepMutexLocker::m_LockTime
private

Definition at line 18 of file qcepmutexlocker.h.

Referenced by QcepMutexLocker(), and ~QcepMutexLocker().


The documentation for this class was generated from the following files: