diff options
author | Chris Mumford <cmumford@cmumford.com> | 2016-01-15 12:22:00 -0800 |
---|---|---|
committer | Chris Mumford <cmumford@cmumford.com> | 2016-01-15 12:22:00 -0800 |
commit | ad834a20a651ebcabf7c03a88712e780a965d4e3 (patch) | |
tree | faaf4fb754a27cc4da9f3895333c140df90a2486 | |
parent | e028bdfa81378c30f682baa022a27b688903e62d (diff) | |
parent | 978b7f4d40ddf34042f4a846ca141a361443c6b5 (diff) | |
download | leveldb-windows.tar.gz |
Merge pull request #306 from AndreyG/windowswindows
[PosixEnv::FileLock] fix
-rwxr-xr-x | util/env_boost.cc | 6 |
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()); } |