summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/ManagementObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/management/ManagementObject.cpp')
-rw-r--r--cpp/src/qpid/management/ManagementObject.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/qpid/management/ManagementObject.cpp b/cpp/src/qpid/management/ManagementObject.cpp
index 68d7e5c886..2528ed4284 100644
--- a/cpp/src/qpid/management/ManagementObject.cpp
+++ b/cpp/src/qpid/management/ManagementObject.cpp
@@ -21,12 +21,15 @@
#include "Manageable.h"
#include "ManagementObject.h"
+#include "ManagementAgent.h"
#include "qpid/framing/FieldTable.h"
using namespace qpid::framing;
using namespace qpid::management;
using namespace qpid::sys;
+int ManagementObject::nextThreadIndex = 0;
+
void ManagementObject::writeTimestamps (Buffer& buf)
{
buf.putShortString (getPackageName ());
@@ -40,3 +43,14 @@ void ManagementObject::writeTimestamps (Buffer& buf)
void ManagementObject::setReference(uint64_t) {}
+int ManagementObject::getThreadIndex() {
+ static __thread int thisIndex = -1;
+ if (thisIndex == -1) {
+ sys::Mutex::ScopedLock mutex(accessLock);
+ thisIndex = nextThreadIndex;
+ if (nextThreadIndex < agent->getMaxThreads() - 1)
+ nextThreadIndex++;
+ }
+ return thisIndex;
+}
+