Index: rlz/mac/lib/rlz_value_store_mac.mm |
diff --git a/rlz/mac/lib/rlz_value_store_mac.mm b/rlz/mac/lib/rlz_value_store_mac.mm |
index b1d082d12e4da259355b7aba13894cd12e986cf6..795a0cce6dabe9655195038a8456921d8fac9b98 100644 |
--- a/rlz/mac/lib/rlz_value_store_mac.mm |
+++ b/rlz/mac/lib/rlz_value_store_mac.mm |
@@ -270,7 +270,9 @@ bool RecursiveCrossProcessLock::TryGetCrossProcessLock( |
const int kSleepPerTryMS = 200; |
CHECK(file_lock_ == -1); |
- file_lock_ = open([lock_filename fileSystemRepresentation], O_CREAT, 0666); |
+ file_lock_ = open([lock_filename fileSystemRepresentation], |
+ O_RDWR | O_CREAT, |
+ 0666); |
if (file_lock_ == -1) |
return false; |
@@ -354,8 +356,8 @@ NSString* RlzPlistFilename() { |
// Returns the path of the rlz lock file, also creates the parent directory |
// path if it doesn't exist. |
NSString* RlzLockFilename() { |
- NSString* const kRlzFile = @"flockfile"; |
- return [CreateRlzDirectory() stringByAppendingPathComponent:kRlzFile]; |
+ NSString* const kRlzLockfile = @"flockfile"; |
+ return [CreateRlzDirectory() stringByAppendingPathComponent:kRlzLockfile]; |
} |
} // namespace |
@@ -377,8 +379,8 @@ ScopedRlzValueStoreLock::ScopedRlzValueStoreLock() { |
} |
if (g_lock_depth > 1) { |
- // Reuse the already existing store object. |
- CHECK(g_store_object); |
+ // Reuse the already existing store object. Note that it can be NULL when |
+ // lock acquisition succeeded but the rlz data file couldn't be read. |
store_.reset(g_store_object); |
return; |
} |
@@ -449,6 +451,12 @@ void SetRlzStoreDirectory(const FilePath& directory) { |
} |
} |
+std::string RlzPlistFilenameStr() { |
+ @autoreleasepool { |
+ return std::string([RlzPlistFilename() fileSystemRepresentation]); |
+ } |
+} |
+ |
} // namespace testing |
} // namespace rlz_lib |