diff options
Diffstat (limited to 'cpp/src/qpid/management/ManagementObject.cpp')
-rw-r--r-- | cpp/src/qpid/management/ManagementObject.cpp | 14 |
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; +} + |