diff options
author | Uwe Klotz <uwe_klotz@web.de> | 2017-06-08 07:34:19 +0200 |
---|---|---|
committer | Uwe Klotz <uwe_klotz@web.de> | 2017-06-12 07:30:18 +0200 |
commit | 45101bf7e3f64f34c6cb1c0420f48a77ded11ec2 (patch) | |
tree | f60bf29566f852953028431788dad3c23b7e9fc5 /src | |
parent | 3753bc5d043eb2236c696fdf168d12c425a36ca4 (diff) |
Generate thread ids in a thread-safe manner
Diffstat (limited to 'src')
-rw-r--r-- | src/analyzer/analyzerqueue.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/analyzer/analyzerqueue.cpp b/src/analyzer/analyzerqueue.cpp index 56bc7b0752..4f302904a0 100644 --- a/src/analyzer/analyzerqueue.cpp +++ b/src/analyzer/analyzerqueue.cpp @@ -40,10 +40,12 @@ const SINT kAnalysisFramesPerBlock = 4096; const SINT kAnalysisSamplesPerBlock = kAnalysisFramesPerBlock * kAnalysisChannels; +QAtomicInt threadCounter(0); + QAtomicInt dbIndex(0); QString nextDatabaseConnectioName() { - const int idx = ::dbIndex.fetchAndAddAcquire(1); + const int idx = dbIndex.fetchAndAddAcquire(1); return QString("ANALYZER_QUEUE-%1").arg(QString::number(idx)); } @@ -306,8 +308,8 @@ void AnalyzerQueue::run() { return; } - unsigned static id = 0; // the id of this thread, for debugging purposes - QThread::currentThread()->setObjectName(QString("AnalyzerQueue %1").arg(++id)); + const int threadId = threadCounter.fetchAndAddAcquire(1) + 1; + QThread::currentThread()->setObjectName(QString("AnalyzerQueue %1").arg(threadId)); kLogger.debug() << "Entering thread"; |