diff options
Diffstat (limited to 'cpp/src/slice2java')
-rw-r--r-- | cpp/src/slice2java/.depend | 4 | ||||
-rw-r--r-- | cpp/src/slice2java/Main.cpp | 38 |
2 files changed, 33 insertions, 9 deletions
diff --git a/cpp/src/slice2java/.depend b/cpp/src/slice2java/.depend index 05d89fd4b1a..2c184eee5d4 100644 --- a/cpp/src/slice2java/.depend +++ b/cpp/src/slice2java/.depend @@ -1,2 +1,2 @@ -Gen$(OBJEXT): Gen.cpp $(includedir)/IceUtil/DisableWarnings.h ./Gen.h $(includedir)/Slice/Parser.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Slice/JavaUtil.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/Slice/Checksum.h $(includedir)/Slice/Util.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Iterator.h -Main$(OBJEXT): Main.cpp $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Slice/Preprocessor.h $(includedir)/Slice/FileTracker.h $(includedir)/Slice/Parser.h $(includedir)/Slice/Util.h ./Gen.h $(includedir)/Slice/JavaUtil.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/Slice/Checksum.h +Gen$(OBJEXT): Gen.cpp $(includedir)/IceUtil/DisableWarnings.h Gen.h $(includedir)/Slice/Parser.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Slice/JavaUtil.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/Slice/Checksum.h $(includedir)/Slice/Util.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/StringUtil.h +Main$(OBJEXT): Main.cpp $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Slice/Preprocessor.h $(includedir)/Slice/FileTracker.h $(includedir)/Slice/Parser.h $(includedir)/Slice/Util.h Gen.h $(includedir)/Slice/JavaUtil.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/Slice/Checksum.h diff --git a/cpp/src/slice2java/Main.cpp b/cpp/src/slice2java/Main.cpp index bec85cbaa24..ce6456193b7 100644 --- a/cpp/src/slice2java/Main.cpp +++ b/cpp/src/slice2java/Main.cpp @@ -9,7 +9,8 @@ #include <IceUtil/Options.h> #include <IceUtil/CtrlCHandler.h> -#include <IceUtil/StaticMutex.h> +#include <IceUtil/Mutex.h> +#include <IceUtil/MutexPtrLock.h> #include <Slice/Preprocessor.h> #include <Slice/FileTracker.h> #include <Slice/Util.h> @@ -22,15 +23,38 @@ using namespace std; using namespace Slice; -static IceUtil::StaticMutex _mutex = ICE_STATIC_MUTEX_INITIALIZER; -static bool _interrupted = false; +namespace +{ + +IceUtil::Mutex* mutex = 0; +bool interrupted = false; + +class Init +{ +public: + + Init() + { + mutex = new IceUtil::Mutex; + } + + ~Init() + { + delete mutex; + mutex = 0; + } +}; + +Init init; + +} void interruptedCallback(int signal) { - IceUtil::StaticMutex::Lock lock(_mutex); + IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex); - _interrupted = true; + interrupted = true; } void @@ -313,9 +337,9 @@ compile(int argc, char* argv[]) } { - IceUtil::StaticMutex::Lock lock(_mutex); + IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex); - if(_interrupted) + if(interrupted) { // // If the translator was interrupted then cleanup any files we've already created. |