diff options
author | Mark Spruiell <mes@zeroc.com> | 2009-02-27 11:01:51 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2009-02-27 11:01:51 -0800 |
commit | 8365e6785eaa227aa8449fbced5b7d09b2666724 (patch) | |
tree | c3bd2da4a05160f2864a223de2d92e59d93d58fa /cpp/demo/book/lifecycle/FilesystemI.cpp | |
parent | bug 3754 - fix comment in Ice/Handle.h (diff) | |
download | ice-8365e6785eaa227aa8449fbced5b7d09b2666724.tar.bz2 ice-8365e6785eaa227aa8449fbced5b7d09b2666724.tar.xz ice-8365e6785eaa227aa8449fbced5b7d09b2666724.zip |
bug 3535 - race condition in lifecycle demo
Diffstat (limited to 'cpp/demo/book/lifecycle/FilesystemI.cpp')
-rw-r--r-- | cpp/demo/book/lifecycle/FilesystemI.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/cpp/demo/book/lifecycle/FilesystemI.cpp b/cpp/demo/book/lifecycle/FilesystemI.cpp index 463087c756d..9fde94fdc1f 100644 --- a/cpp/demo/book/lifecycle/FilesystemI.cpp +++ b/cpp/demo/book/lifecycle/FilesystemI.cpp @@ -196,16 +196,14 @@ FilesystemI::DirectoryI::find(const string& name, const Current& c) FilePrx FilesystemI::DirectoryI::createFile(const string& name, const Current& c) { - { - IceUtil::Mutex::Lock lock(_m); + IceUtil::Mutex::Lock lock(_m); - if(_destroyed) - { - throw ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } + if(_destroyed) + { + throw ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); } - IceUtil::StaticMutex::Lock lock(_lcMutex); + IceUtil::StaticMutex::Lock lcLock(_lcMutex); reap(); @@ -223,16 +221,14 @@ FilesystemI::DirectoryI::createFile(const string& name, const Current& c) DirectoryPrx FilesystemI::DirectoryI::createDirectory(const string& name, const Current& c) { - { - IceUtil::Mutex::Lock lock(_m); + IceUtil::Mutex::Lock lock(_m); - if(_destroyed) - { - throw ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } + if(_destroyed) + { + throw ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); } - IceUtil::StaticMutex::Lock lock(_lcMutex); + IceUtil::StaticMutex::Lock lcLock(_lcMutex); reap(); @@ -250,7 +246,6 @@ FilesystemI::DirectoryI::createDirectory(const string& name, const Current& c) void FilesystemI::DirectoryI::destroy(const Current& c) { - if(!_parent) { throw PermissionDenied("Cannot destroy root directory"); |