summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/erl_node_tables.h
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2023-04-29 01:00:45 +0200
committerRickard Green <rickard@erlang.org>2023-04-29 01:00:45 +0200
commit789bbbb26552128df5af02c2a3f39e96b2eb8f0f (patch)
treeb376561264c4d6e4213cb3ca5716e59a04c395dd /erts/emulator/beam/erl_node_tables.h
parent0863bd30aabd035c83158c78046c5ffda16127e1 (diff)
parent330b119be68f95f6f8fbdef8bf16bba314783973 (diff)
downloaderlang-789bbbb26552128df5af02c2a3f39e96b2eb8f0f.tar.gz
Merge branch 'rickard/creation-fix/23.3.4/OTP-18570' into rickard/creation-fix/24.3.4/OTP-18570
* rickard/creation-fix/23.3.4/OTP-18570: [erts] ensure no mix of external and internal identifiers
Diffstat (limited to 'erts/emulator/beam/erl_node_tables.h')
-rw-r--r--erts/emulator/beam/erl_node_tables.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_node_tables.h b/erts/emulator/beam/erl_node_tables.h
index 937bfb1d9e..c3ee2eaa36 100644
--- a/erts/emulator/beam/erl_node_tables.h
+++ b/erts/emulator/beam/erl_node_tables.h
@@ -258,6 +258,7 @@ void erts_set_dist_entry_not_connected(DistEntry *);
void erts_set_dist_entry_pending(DistEntry *);
void erts_set_dist_entry_connected(DistEntry *, Eterm, Uint64);
ErlNode *erts_find_or_insert_node(Eterm, Uint32, Eterm);
+ErlNode *erts_find_node(Eterm, Uint32);
void erts_schedule_delete_node(ErlNode *);
void erts_set_this_node(Eterm, Uint32);
Uint erts_node_table_size(void);
@@ -285,6 +286,7 @@ ERTS_GLB_INLINE void erts_deref_node_entry__(ErlNode *np, Eterm term, char *file
ERTS_GLB_INLINE erts_aint_t erts_ref_node_entry(ErlNode *np, int min_val, Eterm term);
ERTS_GLB_INLINE void erts_deref_node_entry(ErlNode *np, Eterm term);
#endif
+ERTS_GLB_INLINE erts_aint_t erts_node_refc(ErlNode *np);
ERTS_GLB_INLINE void erts_de_rlock(DistEntry *dep);
ERTS_GLB_INLINE void erts_de_runlock(DistEntry *dep);
ERTS_GLB_INLINE void erts_de_rwlock(DistEntry *dep);
@@ -335,6 +337,12 @@ erts_deref_node_entry(ErlNode *np, Eterm term)
erts_schedule_delete_node(np);
}
+ERTS_GLB_INLINE erts_aint_t
+erts_node_refc(ErlNode *np)
+{
+ return erts_refc_read(&np->refc, 0);
+}
+
#endif
ERTS_GLB_INLINE void