diff options
Diffstat (limited to 'cpp/src/slice2php/Main.cpp')
-rw-r--r-- | cpp/src/slice2php/Main.cpp | 43 |
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; } + |