summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mumford <cmumford@cmumford.com>2016-01-15 12:22:00 -0800
committerChris Mumford <cmumford@cmumford.com>2016-01-15 12:22:00 -0800
commitad834a20a651ebcabf7c03a88712e780a965d4e3 (patch)
treefaaf4fb754a27cc4da9f3895333c140df90a2486
parente028bdfa81378c30f682baa022a27b688903e62d (diff)
parent978b7f4d40ddf34042f4a846ca141a361443c6b5 (diff)
downloadleveldb-windows.tar.gz
Merge pull request #306 from AndreyG/windowswindows
[PosixEnv::FileLock] fix
-rwxr-xr-xutil/env_boost.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/util/env_boost.cc b/util/env_boost.cc
index 1c419e3..ff32dfc 100755
--- a/util/env_boost.cc
+++ b/util/env_boost.cc
@@ -402,8 +402,10 @@ class PosixEnv : public Env {
boost::interprocess::file_lock fl(fname.c_str());
BoostFileLock * my_lock = new BoostFileLock();
my_lock->fl_ = std::move(fl);
- my_lock->fl_.lock();
- *lock = my_lock;
+ if (my_lock->fl_.try_lock())
+ *lock = my_lock;
+ else
+ result = Status::IOError("acquiring lock " + fname + " failed");
} catch (const std::exception & e) {
result = Status::IOError("lock " + fname, e.what());
}