summaryrefslogtreecommitdiff
path: root/cpp/src/slice2php/Main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2php/Main.cpp')
-rw-r--r--cpp/src/slice2php/Main.cpp43
1 files changed, 34 insertions, 9 deletions
diff --git a/cpp/src/slice2php/Main.cpp b/cpp/src/slice2php/Main.cpp
index 3f465fb4544..0f5e0af5d87 100644
--- a/cpp/src/slice2php/Main.cpp
+++ b/cpp/src/slice2php/Main.cpp
@@ -14,7 +14,8 @@
#include <IceUtil/Options.h>
#include <IceUtil/OutputUtil.h>
#include <IceUtil/StringUtil.h>
-#include <IceUtil/StaticMutex.h>
+#include <IceUtil/Mutex.h>
+#include <IceUtil/MutexPtrLock.h>
#include <Slice/Checksum.h>
#include <Slice/Preprocessor.h>
#include <Slice/FileTracker.h>
@@ -1447,18 +1448,41 @@ printHeader(IceUtilInternal::Output& out)
out << "\n// Ice version " << ICE_STRING_VERSION;
}
-static IceUtil::StaticMutex _mutex = ICE_STATIC_MUTEX_INITIALIZER;
-static bool _interrupted = false;
+namespace
+{
-void
+IceUtil::Mutex* mutex = 0;
+bool interrupted = false;
+
+class Init
+{
+public:
+
+ Init()
+ {
+ mutex = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+ delete mutex;
+ mutex = 0;
+ }
+};
+
+Init init;
+
+}
+
+static void
interruptedCallback(int signal)
{
- IceUtil::StaticMutex::Lock lock(_mutex);
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
- _interrupted = true;
+ interrupted = true;
}
-void
+static void
usage(const char* n)
{
cerr << "Usage: " << n << " [options] slice-files...\n";
@@ -1670,9 +1694,9 @@ main(int argc, char* argv[])
}
{
- IceUtil::StaticMutex::Lock lock(_mutex);
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
- if(_interrupted)
+ if(interrupted)
{
FileTracker::instance()->cleanup();
return EXIT_FAILURE;
@@ -1682,3 +1706,4 @@ main(int argc, char* argv[])
return status;
}
+