shm: Add size to UnmanagedRegion debug output

This commit is contained in:
Alexey Rybalchenko 2022-01-30 12:41:08 +01:00
parent ad894c79cf
commit 4f9aeda8ec
3 changed files with 8 additions and 4 deletions

View File

@ -58,19 +58,22 @@ struct RegionInfo
: fPath("", alloc)
, fCreationFlags(0)
, fUserFlags(0)
, fSize(0)
, fDestroyed(false)
{}
RegionInfo(const char* path, const int flags, const uint64_t userFlags, const VoidAlloc& alloc)
RegionInfo(const char* path, int flags, uint64_t userFlags, uint64_t size, const VoidAlloc& alloc)
: fPath(path, alloc)
, fCreationFlags(flags)
, fUserFlags(userFlags)
, fSize(size)
, fDestroyed(false)
{}
Str fPath;
int fCreationFlags;
uint64_t fUserFlags;
uint64_t fSize;
bool fDestroyed;
};

View File

@ -267,6 +267,7 @@ bool Monitor::PrintShm(const ShmId& shmId)
ss << "\n unmanaged regions:";
for (const auto& r : *shmRegions) {
ss << "\n [" << r.first << "]: " << (r.second.fDestroyed ? "destroyed" : "alive");
ss << ", size: " << r.second.fSize;
try {
boost::interprocess::message_queue q(open_only, std::string("fmq_" + std::string(shmId) + "_rgq_" + to_string(r.first)).c_str());

View File

@ -119,7 +119,7 @@ struct UnmanagedRegion
}
if (!remote) {
Register(shmId, cfg);
Register(shmId, cfg, size);
}
LOG(trace) << "shmem: initialized region: " << fName << " (" << (remote ? "remote" : "local") << ")";
@ -223,7 +223,7 @@ struct UnmanagedRegion
return regionCfg;
}
static void Register(const std::string& shmId, RegionConfig& cfg)
static void Register(const std::string& shmId, RegionConfig& cfg, uint64_t size)
{
using namespace boost::interprocess;
managed_shared_memory mngSegment(open_or_create, std::string("fmq_" + shmId + "_mng").c_str(), 6553600);
@ -236,7 +236,7 @@ struct UnmanagedRegion
eventCounter = mngSegment.construct<EventCounter>(unique_instance)(0);
}
bool newShmRegionCreated = shmRegions->emplace(cfg.id.value(), RegionInfo(cfg.path.c_str(), cfg.creationFlags, cfg.userFlags, alloc)).second;
bool newShmRegionCreated = shmRegions->emplace(cfg.id.value(), RegionInfo(cfg.path.c_str(), cfg.creationFlags, cfg.userFlags, size, alloc)).second;
if (newShmRegionCreated) {
(eventCounter->fCount)++;
}