diff --git a/src/RemoteTagCache.cxx b/src/RemoteTagCache.cxx index 75723cab8..c351c349d 100644 --- a/src/RemoteTagCache.cxx +++ b/src/RemoteTagCache.cxx @@ -30,8 +30,7 @@ static constexpr Domain remote_tag_cache_domain("remote_tag_cache"); RemoteTagCache::RemoteTagCache(EventLoop &event_loop, RemoteTagCacheHandler &_handler) noexcept :handler(_handler), - defer_invoke_handler(event_loop, BIND_THIS_METHOD(InvokeHandlers)), - map(typename KeyMap::bucket_traits(&buckets.front(), buckets.size())) + defer_invoke_handler(event_loop, BIND_THIS_METHOD(InvokeHandlers)) { } @@ -45,11 +44,10 @@ RemoteTagCache::Lookup(const std::string &uri) noexcept { std::unique_lock lock(mutex); - KeyMap::insert_commit_data hint; - auto [tag, value] = map.insert_check(uri, Item::Hash(), Item::Equal(), hint); + auto [tag, value] = map.insert_check(uri); if (value) { auto item = new Item(*this, uri); - map.insert_commit(*item, hint); + map.insert(tag, *item); waiting_list.push_back(*item); lock.unlock(); diff --git a/src/RemoteTagCache.hxx b/src/RemoteTagCache.hxx index a2051a575..116a753b5 100644 --- a/src/RemoteTagCache.hxx +++ b/src/RemoteTagCache.hxx @@ -25,8 +25,7 @@ #include "event/InjectEvent.hxx" #include "thread/Mutex.hxx" #include "util/IntrusiveList.hxx" - -#include +#include "util/IntrusiveHashSet.hxx" #include @@ -45,7 +44,7 @@ class RemoteTagCache final { Mutex mutex; struct Item final - : public boost::intrusive::unordered_set_base_hook>, + : public IntrusiveHashSetHook<>, public IntrusiveListHook<>, RemoteTagHandler { @@ -113,12 +112,9 @@ class RemoteTagCache final { */ ItemList invoke_list; - typedef boost::intrusive::unordered_set, - boost::intrusive::equal, - boost::intrusive::constant_time_size> KeyMap; - - std::array buckets; + using KeyMap = IntrusiveHashSet, + true>; KeyMap map;