212 _current_size, start_size_log_2); |
212 _current_size, start_size_log_2); |
213 _local_table = new StringTableHash(start_size_log_2, END_SIZE, REHASH_LEN); |
213 _local_table = new StringTableHash(start_size_log_2, END_SIZE, REHASH_LEN); |
214 } |
214 } |
215 |
215 |
216 size_t StringTable::item_added() { |
216 size_t StringTable::item_added() { |
217 return Atomic::add((size_t)1, &_items_count); |
217 return Atomic::add(&_items_count, (size_t)1); |
218 } |
218 } |
219 |
219 |
220 size_t StringTable::add_items_to_clean(size_t ndead) { |
220 size_t StringTable::add_items_to_clean(size_t ndead) { |
221 size_t total = Atomic::add((size_t)ndead, &_uncleaned_items_count); |
221 size_t total = Atomic::add(&_uncleaned_items_count, (size_t)ndead); |
222 log_trace(stringtable)( |
222 log_trace(stringtable)( |
223 "Uncleaned items:" SIZE_FORMAT " added: " SIZE_FORMAT " total:" SIZE_FORMAT, |
223 "Uncleaned items:" SIZE_FORMAT " added: " SIZE_FORMAT " total:" SIZE_FORMAT, |
224 _uncleaned_items_count, ndead, total); |
224 _uncleaned_items_count, ndead, total); |
225 return total; |
225 return total; |
226 } |
226 } |
227 |
227 |
228 void StringTable::item_removed() { |
228 void StringTable::item_removed() { |
229 Atomic::add((size_t)-1, &_items_count); |
229 Atomic::add(&_items_count, (size_t)-1); |
230 } |
230 } |
231 |
231 |
232 double StringTable::get_load_factor() { |
232 double StringTable::get_load_factor() { |
233 return (double)_items_count/_current_size; |
233 return (double)_items_count/_current_size; |
234 } |
234 } |