Shm: initial multiple segments support

This commit is contained in:
Alexey Rybalchenko
2020-08-25 21:04:02 +02:00
parent b126ede45a
commit 266843cda5
11 changed files with 159 additions and 124 deletions

View File

@@ -114,13 +114,13 @@ class Context
return fRegionInfos;
}
uint64_t RegionCount() const
uint16_t RegionCount() const
{
std::lock_guard<std::mutex> lock(fMtx);
return fRegionCounter;
}
void AddRegion(bool managed, uint64_t id, void* ptr, size_t size, int64_t userFlags, RegionEvent event)
void AddRegion(bool managed, uint16_t id, void* ptr, size_t size, int64_t userFlags, RegionEvent event)
{
{
std::lock_guard<std::mutex> lock(fMtx);
@@ -131,7 +131,7 @@ class Context
fRegionEventsCV.notify_one();
}
void RemoveRegion(uint64_t id)
void RemoveRegion(uint16_t id)
{
{
std::lock_guard<std::mutex> lock(fMtx);
@@ -182,7 +182,7 @@ class Context
mutable std::mutex fMtx;
std::atomic<bool> fInterrupted;
uint64_t fRegionCounter;
uint16_t fRegionCounter;
std::condition_variable fRegionEventsCV;
std::vector<RegionInfo> fRegionInfos;
std::queue<RegionInfo> fRegionEvents;

View File

@@ -50,7 +50,7 @@ class UnmanagedRegion final : public fair::mq::UnmanagedRegion
virtual void* GetData() const override { return fBuffer; }
virtual size_t GetSize() const override { return fSize; }
uint64_t GetId() const override { return fId; }
uint16_t GetId() const override { return fId; }
int64_t GetUserFlags() const { return fUserFlags; }
void SetLinger(uint32_t /* linger */) override { LOG(debug) << "ZeroMQ UnmanagedRegion linger option not implemented. Acknowledgements are local."; }
uint32_t GetLinger() const override { LOG(debug) << "ZeroMQ UnmanagedRegion linger option not implemented. Acknowledgements are local."; return 0; }
@@ -64,7 +64,7 @@ class UnmanagedRegion final : public fair::mq::UnmanagedRegion
private:
Context& fCtx;
uint64_t fId;
uint16_t fId;
void* fBuffer;
size_t fSize;
int64_t fUserFlags;