52 typename std::conditional<track_reuse_, std::vector<std::pair<Id_, Slab_*> >,
bool>::type my_to_reuse;
143 if (
slab_info.first == my_last_slab_id && my_last_slab) {
144 return std::make_pair(my_last_slab,
slab_info.second);
149 if (my_counter - 1 == my_refresh_point) {
158 while (++my_refresh_point < my_total) {
166 if (my_future_cache.find(
future_slab_info.first) != my_future_cache.end()) {
176 if (
ccIt == my_current_cache.end()) {
183 my_current_cache.erase(
ccIt);
190 auto cIt = my_current_cache.begin();
191 for (
auto a : my_in_need) {
192 if (
cIt != my_current_cache.end()) {
193 my_to_populate.emplace_back(
a,
cIt->second);
194 my_future_cache[
a] =
cIt->second;
199 my_all_slabs.push_back(create());
200 auto slab_ptr = &(my_all_slabs.back());
201 my_to_populate.emplace_back(
a,
slab_ptr);
208 populate(my_to_populate, my_to_reuse);
213 my_to_populate.clear();
226 my_current_cache.clear();
227 my_current_cache.swap(my_future_cache);
232 my_last_slab =
ccIt->second;
233 return std::make_pair(my_last_slab,
slab_info.second);