summaryrefslogtreecommitdiff
path: root/cpp/test/IceStorm/stress/Subscriber.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/IceStorm/stress/Subscriber.cpp')
-rw-r--r--cpp/test/IceStorm/stress/Subscriber.cpp35
1 files changed, 30 insertions, 5 deletions
diff --git a/cpp/test/IceStorm/stress/Subscriber.cpp b/cpp/test/IceStorm/stress/Subscriber.cpp
index 99fe7e2a844..6424a5fd0bf 100644
--- a/cpp/test/IceStorm/stress/Subscriber.cpp
+++ b/cpp/test/IceStorm/stress/Subscriber.cpp
@@ -15,7 +15,8 @@
#include <IceUtil/Time.h>
#include <IceUtil/Random.h>
#include <Event.h>
-
+#include <IceUtil/Mutex.h>
+#include <IceUtil/MutexPtrLock.h>
#include <TestCommon.h>
using namespace std;
@@ -130,7 +131,7 @@ public:
ErraticEventI(const CommunicatorPtr& communicator, int total) :
EventI(communicator, total), _done(false)
{
- IceUtil::StaticMutex::Lock sync(_remainingMutex);
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(_remainingMutex);
++_remaining;
}
@@ -149,7 +150,7 @@ public:
current.adapter->deactivate();
_count = _total;
{
- IceUtil::StaticMutex::Lock sync(_remainingMutex);
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(_remainingMutex);
--_remaining;
if(_remaining == 0)
{
@@ -159,16 +160,40 @@ public:
}
}
+ static IceUtil::Mutex* _remainingMutex;
+
private:
- static IceUtil::StaticMutex _remainingMutex;
static int _remaining;
bool _done;
};
-IceUtil::StaticMutex ErraticEventI::_remainingMutex = ICE_STATIC_MUTEX_INITIALIZER;
+IceUtil::Mutex* ErraticEventI::_remainingMutex = 0;
int ErraticEventI::_remaining = 0;
+namespace
+{
+
+class Init
+{
+public:
+
+ Init()
+ {
+ ErraticEventI::_remainingMutex = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+ delete ErraticEventI::_remainingMutex;
+ ErraticEventI::_remainingMutex = 0;
+ }
+};
+
+Init init;
+
+}
+
struct Subscription
{
Ice::ObjectAdapterPtr adapter;