sprinkled some inlines

This commit is contained in:
joaquintides
2023-03-29 18:29:15 +02:00
parent 4482031329
commit 62cf58d1ca

View File

@ -654,51 +654,51 @@ private:
concurrent_table&& x,const Allocator& al_,exclusive_lock_guard): concurrent_table&& x,const Allocator& al_,exclusive_lock_guard):
super{std::move(x),al_}{} super{std::move(x),al_}{}
shared_lock_guard shared_access()const inline shared_lock_guard shared_access()const
{ {
thread_local auto id=(++thread_counter)%mutexes.size(); thread_local auto id=(++thread_counter)%mutexes.size();
return shared_lock_guard{mutexes[id]}; return shared_lock_guard{mutexes[id]};
} }
exclusive_lock_guard exclusive_access()const inline exclusive_lock_guard exclusive_access()const
{ {
return exclusive_lock_guard{mutexes}; return exclusive_lock_guard{mutexes};
} }
exclusive_bilock_guard exclusive_access( inline exclusive_bilock_guard exclusive_access(
const concurrent_table& x,const concurrent_table& y) const concurrent_table& x,const concurrent_table& y)
{ {
return {x.mutexes,y.mutexes}; return {x.mutexes,y.mutexes};
} }
#if defined(BOOST_UNORDERED_EMBEDDED_GROUP_ACCESS) #if defined(BOOST_UNORDERED_EMBEDDED_GROUP_ACCESS)
group_shared_lock_guard shared_access(std::size_t pos)const inline group_shared_lock_guard shared_access(std::size_t pos)const
{ {
return this->arrays.groups[pos].shared_access(); return this->arrays.groups[pos].shared_access();
} }
group_exclusive_lock_guard exclusive_access(std::size_t pos)const inline group_exclusive_lock_guard exclusive_access(std::size_t pos)const
{ {
return this->arrays.groups[pos].exclusive_access(); return this->arrays.groups[pos].exclusive_access();
} }
group_insert_counter_type& insert_counter(std::size_t pos)const inline group_insert_counter_type& insert_counter(std::size_t pos)const
{ {
return this->arrays.groups[pos].insert_counter(); return this->arrays.groups[pos].insert_counter();
} }
#else #else
group_shared_lock_guard shared_access(std::size_t pos)const inline group_shared_lock_guard shared_access(std::size_t pos)const
{ {
return this->arrays.group_accesses[pos].shared_access(); return this->arrays.group_accesses[pos].shared_access();
} }
group_exclusive_lock_guard exclusive_access(std::size_t pos)const inline group_exclusive_lock_guard exclusive_access(std::size_t pos)const
{ {
return this->arrays.group_accesses[pos].exclusive_access(); return this->arrays.group_accesses[pos].exclusive_access();
} }
group_insert_counter_type& insert_counter(std::size_t pos)const inline group_insert_counter_type& insert_counter(std::size_t pos)const
{ {
return this->arrays.group_accesses[pos].insert_counter(); return this->arrays.group_accesses[pos].insert_counter();
} }
@ -709,12 +709,13 @@ private:
using group_shared=std::false_type; using group_shared=std::false_type;
using group_exclusive=std::true_type; using group_exclusive=std::true_type;
group_shared_lock_guard access(group_shared,std::size_t pos)const inline group_shared_lock_guard access(group_shared,std::size_t pos)const
{ {
return shared_access(pos); return shared_access(pos);
} }
group_exclusive_lock_guard access(group_exclusive,std::size_t pos)const inline group_exclusive_lock_guard access(
group_exclusive,std::size_t pos)const
{ {
return exclusive_access(pos); return exclusive_access(pos);
} }
@ -724,8 +725,9 @@ private:
* access is always const regardless of group access. * access is always const regardless of group access.
*/ */
static const value_type& cast_for(group_shared,value_type& x){return x;} static inline const value_type& cast_for(group_shared,value_type& x)
static typename std::conditional< {return x;}
static inline typename std::conditional<
std::is_same<key_type,value_type>::value, std::is_same<key_type,value_type>::value,
const value_type&, const value_type&,
value_type& value_type&