From e5847d85a6676e87832a188792078d35cde25986 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 1 Mar 2023 11:03:20 +0100 Subject: [PATCH] Lookup only once in map. --- src/kernel/actor/SimcallObserver.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/kernel/actor/SimcallObserver.hpp b/src/kernel/actor/SimcallObserver.hpp index 71f7e13e60..1dfc713edc 100644 --- a/src/kernel/actor/SimcallObserver.hpp +++ b/src/kernel/actor/SimcallObserver.hpp @@ -147,9 +147,10 @@ public: template static std::string ptr_to_id(A* ptr) { static std::unordered_map map; - if (map.find(ptr) == map.end()) - map.insert(std::make_pair(ptr, std::to_string(map.size() + 1))); - return map[ptr]; + auto [elm, inserted] = map.try_emplace(ptr); + if (inserted) + elm->second = std::to_string(map.size()); + return elm->second; } } // namespace simgrid::kernel::actor -- 2.20.1