MCPcopy Create free account
hub / github.com/ElementsProject/elements / LockFile

Method LockFile

src/leveldb/util/env_windows.cc:592–608  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

590 }
591
592 Status LockFile(const std::string& filename, FileLock** lock) override {
593 *lock = nullptr;
594 Status result;
595 auto wFilename = toUtf16(filename);
596 ScopedHandle handle = ::CreateFileW(
597 wFilename.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,
598 /*lpSecurityAttributes=*/nullptr, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,
599 nullptr);
600 if (!handle.is_valid()) {
601 result = WindowsError(filename, ::GetLastError());
602 } else if (!LockOrUnlock(handle.get(), true)) {
603 result = WindowsError("lock " + filename, ::GetLastError());
604 } else {
605 *lock = new WindowsFileLock(std::move(handle), filename);
606 }
607 return result;
608 }
609
610 Status UnlockFile(FileLock* lock) override {
611 WindowsFileLock* windows_file_lock =

Callers

nothing calls this directly

Calls 4

WindowsErrorFunction · 0.85
LockOrUnlockFunction · 0.70
is_validMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected