003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/source/Host/common
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
source
/
Host
/
common
/
📁
..
📄
Editline.cpp
(52.55 KB)
📄
File.cpp
(19.23 KB)
📄
FileAction.cpp
(2.16 KB)
📄
FileCache.cpp
(3.38 KB)
📄
FileSystem.cpp
(14.09 KB)
📄
GetOptInc.cpp
(12.53 KB)
📄
Host.cpp
(21.11 KB)
📄
HostInfoBase.cpp
(12.08 KB)
📄
HostNativeThreadBase.cpp
(1.92 KB)
📄
HostProcess.cpp
(1.5 KB)
📄
HostThread.cpp
(1.47 KB)
📄
LZMA.cpp
(4.76 KB)
📄
LockFileBase.cpp
(2.25 KB)
📄
MainLoop.cpp
(10.67 KB)
📄
MonitoringProcessLauncher.cpp
(2.44 KB)
📄
NativeProcessProtocol.cpp
(26.66 KB)
📄
NativeRegisterContext.cpp
(14.02 KB)
📄
NativeThreadProtocol.cpp
(755 B)
📄
NativeWatchpointList.cpp
(941 B)
📄
OptionParser.cpp
(2.38 KB)
📄
PipeBase.cpp
(893 B)
📄
ProcessLaunchInfo.cpp
(11.86 KB)
📄
ProcessRunLock.cpp
(1.43 KB)
📄
PseudoTerminal.cpp
(9.53 KB)
📄
Socket.cpp
(14.42 KB)
📄
SocketAddress.cpp
(8.52 KB)
📄
StringConvert.cpp
(2.53 KB)
📄
TCPSocket.cpp
(9.17 KB)
📄
Terminal.cpp
(6.24 KB)
📄
ThreadLauncher.cpp
(2.54 KB)
📄
UDPSocket.cpp
(4.3 KB)
📄
XML.cpp
(14.23 KB)
Editing: LockFileBase.cpp
//===-- LockFileBase.cpp --------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "lldb/Host/LockFileBase.h" using namespace lldb; using namespace lldb_private; namespace { Status AlreadyLocked() { return Status("Already locked"); } Status NotLocked() { return Status("Not locked"); } } LockFileBase::LockFileBase(int fd) : m_fd(fd), m_locked(false), m_start(0), m_len(0) {} bool LockFileBase::IsLocked() const { return m_locked; } Status LockFileBase::WriteLock(const uint64_t start, const uint64_t len) { return DoLock([&](const uint64_t start, const uint64_t len) { return DoWriteLock(start, len); }, start, len); } Status LockFileBase::TryWriteLock(const uint64_t start, const uint64_t len) { return DoLock([&](const uint64_t start, const uint64_t len) { return DoTryWriteLock(start, len); }, start, len); } Status LockFileBase::ReadLock(const uint64_t start, const uint64_t len) { return DoLock([&](const uint64_t start, const uint64_t len) { return DoReadLock(start, len); }, start, len); } Status LockFileBase::TryReadLock(const uint64_t start, const uint64_t len) { return DoLock([&](const uint64_t start, const uint64_t len) { return DoTryReadLock(start, len); }, start, len); } Status LockFileBase::Unlock() { if (!IsLocked()) return NotLocked(); const auto error = DoUnlock(); if (error.Success()) { m_locked = false; m_start = 0; m_len = 0; } return error; } bool LockFileBase::IsValidFile() const { return m_fd != -1; } Status LockFileBase::DoLock(const Locker &locker, const uint64_t start, const uint64_t len) { if (!IsValidFile()) return Status("File is invalid"); if (IsLocked()) return AlreadyLocked(); const auto error = locker(start, len); if (error.Success()) { m_locked = true; m_start = start; m_len = len; } return error; }
Upload File
Create Folder