From de0901819851dbf550189a1be5e0c7189240a1f6 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Fri, 9 Sep 2022 13:58:25 +0200 Subject: [PATCH] Shm: fix region init with external regions --- fairmq/shmem/Manager.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/fairmq/shmem/Manager.h b/fairmq/shmem/Manager.h index 279188de..aab01943 100644 --- a/fairmq/shmem/Manager.h +++ b/fairmq/shmem/Manager.h @@ -395,18 +395,10 @@ class Manager const uint16_t id = cfg.id.value(); - UnmanagedRegion* region = nullptr; - bool newRegionCreated = false; std::lock_guard lock(fLocalRegionsMtx); - auto res = fRegions.emplace(id, std::make_unique(fShmId, size, false, cfg)); - newRegionCreated = res.second; - region = res.first->second.get(); + auto& region = fRegions[id] = std::make_unique(fShmId, size, false, cfg); // LOG(debug) << "Created region with id '" << id << "', path: '" << cfg.path << "', flags: '" << cfg.creationFlags << "'"; - if (!newRegionCreated) { - region->fRemote = false; // TODO: this should be more clear, refactor it. - } - // start ack receiver only if a callback has been provided. if (callback || bulkCallback) { region->SetCallbacks(callback, bulkCallback); @@ -414,7 +406,7 @@ class Manager region->StartAckSender(); region->StartAckReceiver(); } - result.first = region; + result.first = region.get(); result.second = id; } fRegionsGen += 1; // signal TL cache invalidation