diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2014-05-30 23:02:53 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2014-05-30 23:02:53 +0000 |
commit | 35374bb5048d7e92e4c0871fbd32488514fd0da1 (patch) | |
tree | b74e8ce975b8b0052936e201f32aea7f43ce0e53 /TAO/tao/Storable_FlatFileStream.cpp | |
parent | 9e5776d683713d83ea040d01b50e4e732cf220ef (diff) | |
download | ATCD-35374bb5048d7e92e4c0871fbd32488514fd0da1.tar.gz |
Fri May 30 22:55:56 UTC 2014 Phil Mesnier <mesnier_p@ociweb.com>
* orbsvcs/orbsvcs/Naming/Storable_Naming_Context.h:
* orbsvcs/orbsvcs/Naming/Storable_Naming_Context.cpp:
* tao/Storable_FlatFileStream.cpp:
Fix for the corner case of a race between redundant naming
servers sharing a storable context file.
Diffstat (limited to 'TAO/tao/Storable_FlatFileStream.cpp')
-rw-r--r-- | TAO/tao/Storable_FlatFileStream.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/TAO/tao/Storable_FlatFileStream.cpp b/TAO/tao/Storable_FlatFileStream.cpp index f5dfb02f216..4ae15f5b08f 100644 --- a/TAO/tao/Storable_FlatFileStream.cpp +++ b/TAO/tao/Storable_FlatFileStream.cpp @@ -128,7 +128,7 @@ TAO::Storable_FlatFileStream::Storable_FlatFileStream (const ACE_CString & file, , mode_(mode) { // filelock_ will be completely initialized in call to init (). - filelock_.handle_ = 0; + filelock_.handle_ = ACE_INVALID_HANDLE; filelock_.lockname_ = 0; } @@ -263,7 +263,10 @@ time_t TAO::Storable_FlatFileStream::last_changed(void) { ACE_stat st; - if (ACE_OS::fstat(filelock_.handle_, &st) != 0) + int result = filelock_.handle_ != ACE_INVALID_HANDLE ? + ACE_OS::fstat(filelock_.handle_, &st) : + ACE_OS::stat (file_.c_str (), &st); + if (result != 0) { TAOLIB_ERROR ((LM_ERROR, ACE_TEXT ("TAO (%P|%t) - ") |