25#include <unordered_map>
30#include "cuttlefish/host/commands/cvd/instances/cvd_persistent_data.pb.h"
53 std::function<
Result<R>(
const cvd::PersistentData&)> task)
const {
70 std::function<
Result<R>(cvd::PersistentData&)> task) {
74 auto res = task(
data);
82 sigfillset(&all_signals);
85 CF_EXPECTF(fd->Truncate(0) >= 0,
"Failed to truncate fd: {}",
87 CF_EXPECTF(fd->LSeek(0, SEEK_SET) >= 0,
"Failed to seek to 0: {}",
117 std::unordered_map<std::thread::id, bool>&
map_;
Definition: expected.h:86
Definition: data_viewer.h:108
DeadlockProtector(DeadlockProtector &&)=delete
~DeadlockProtector()
Definition: data_viewer.cpp:63
std::mutex & mtx_
Definition: data_viewer.h:116
std::unordered_map< std::thread::id, bool > & map_
Definition: data_viewer.h:117
DeadlockProtector(const DeadlockProtector &)=delete
DeadlockProtector(const DataViewer &dv)
Definition: data_viewer.cpp:55
Definition: data_viewer.h:40
std::string backing_file_
Definition: data_viewer.h:122
Result< R > WithExclusiveLock(std::function< Result< R >(cvd::PersistentData &)> task)
Definition: data_viewer.h:69
Result< void > StoreData(SharedFD fd, cvd::PersistentData data)
Definition: data_viewer.cpp:46
Result< cvd::PersistentData > LoadData(SharedFD fd) const
Definition: data_viewer.cpp:36
Result< SharedFD > LockBackingFile(int op) const
Definition: data_viewer.cpp:26
std::unordered_map< std::thread::id, bool > lock_held_by_
Definition: data_viewer.h:120
DataViewer(const std::string &backing_file)
Definition: data_viewer.h:42
Result< R > WithSharedLock(std::function< Result< R >(const cvd::PersistentData &)> task) const
Definition: data_viewer.h:52
std::mutex lock_map_mtx_
Definition: data_viewer.h:119
Definition: shared_fd.h:129
#define CF_EXPECT(...)
Definition: result.h:414
#define CF_EXPECTF(RESULT, MSG,...)
Definition: result.h:417
char data[Size]
Definition: incremental_server.cpp:1
Definition: alloc_utils.cpp:23
UnitT< Unit::DP > dp
Definition: utils.h:177