summaryrefslogtreecommitdiff
path: root/TAO/tao/Storable_FlatFileStream.cpp
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2014-05-30 23:02:53 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2014-05-30 23:02:53 +0000
commit35374bb5048d7e92e4c0871fbd32488514fd0da1 (patch)
treeb74e8ce975b8b0052936e201f32aea7f43ce0e53 /TAO/tao/Storable_FlatFileStream.cpp
parent9e5776d683713d83ea040d01b50e4e732cf220ef (diff)
downloadATCD-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.cpp7
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) - ")