int erts_fun_table_sz(void) { int sz; int lock = !ERTS_IS_CRASH_DUMPING; if (lock) erts_fun_read_lock(); sz = hash_table_sz(&erts_fun_table); if (lock) erts_fun_read_unlock(); return sz; }
int process_reg_sz(void) { int sz; int lock = !ERTS_IS_CRASH_DUMPING; if (lock) reg_read_lock(); sz = hash_table_sz(&process_reg); if (lock) reg_read_unlock(); return sz; }
Uint erts_node_table_size(void) { Uint res; #ifdef DEBUG HashInfo hi; #endif int lock = !ERTS_IS_CRASH_DUMPING; if (lock) erts_smp_mtx_lock(&erts_node_table_mtx); #ifdef DEBUG hash_get_info(&hi, &erts_node_table); ASSERT(node_entries == hi.objs); #endif res = hash_table_sz(&erts_node_table) + node_entries*sizeof(ErlNode); if (lock) erts_smp_mtx_unlock(&erts_node_table_mtx); return res; }
Uint erts_dist_table_size(void) { Uint res; #ifdef DEBUG HashInfo hi; DistEntry *dep; int i; #endif int lock = !ERTS_IS_CRASH_DUMPING; if (lock) erts_smp_mtx_lock(&erts_dist_table_mtx); #ifdef DEBUG hash_get_info(&hi, &erts_dist_table); ASSERT(dist_entries == hi.objs); i = 0; for(dep = erts_visible_dist_entries; dep; dep = dep->next) i++; ASSERT(i == erts_no_of_visible_dist_entries); i = 0; for(dep = erts_hidden_dist_entries; dep; dep = dep->next) i++; ASSERT(i == erts_no_of_hidden_dist_entries); i = 0; for(dep = erts_not_connected_dist_entries; dep; dep = dep->next) i++; ASSERT(i == erts_no_of_not_connected_dist_entries); ASSERT(dist_entries == (erts_no_of_visible_dist_entries + erts_no_of_hidden_dist_entries + erts_no_of_not_connected_dist_entries + 1 /* erts_this_dist_entry */)); #endif res = (hash_table_sz(&erts_dist_table) + dist_entries*sizeof(DistEntry) + erts_dist_cache_size()); if (lock) erts_smp_mtx_unlock(&erts_dist_table_mtx); return res; }