aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_node_tables.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-03-01 17:56:01 +0100
committerSverker Eriksson <[email protected]>2018-03-02 19:16:48 +0100
commit96aba63465135d5e2537b42e5167b2863957915c (patch)
tree033e373c6707ab288a2fdfbe5fd47db9d6bfad14 /erts/emulator/beam/erl_node_tables.c
parentb31750711daa35011c62898d2eb424332e170bcc (diff)
downloadotp-96aba63465135d5e2537b42e5167b2863957915c.tar.gz
otp-96aba63465135d5e2537b42e5167b2863957915c.tar.bz2
otp-96aba63465135d5e2537b42e5167b2863957915c.zip
erts: Postpone idle DistEntry until abort is completed
Diffstat (limited to 'erts/emulator/beam/erl_node_tables.c')
-rw-r--r--erts/emulator/beam/erl_node_tables.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/erts/emulator/beam/erl_node_tables.c b/erts/emulator/beam/erl_node_tables.c
index 9871965ba6..e8901a652f 100644
--- a/erts/emulator/beam/erl_node_tables.c
+++ b/erts/emulator/beam/erl_node_tables.c
@@ -561,10 +561,6 @@ erts_set_dist_entry_not_connected(DistEntry *dep)
ASSERT(erts_no_of_pending_dist_entries > 0);
erts_no_of_pending_dist_entries--;
head = &erts_pending_dist_entries;
-
- // Todo: Is this really ok? Must be not wait for links and monitors
- // to be fired before we can allow another connection.
- dep->state = ERTS_DE_STATE_IDLE;
}
else {
ASSERT(dep->state != ERTS_DE_STATE_IDLE);
@@ -579,7 +575,6 @@ erts_set_dist_entry_not_connected(DistEntry *dep)
erts_no_of_hidden_dist_entries--;
head = &erts_hidden_dist_entries;
}
- dep->state = ERTS_DE_STATE_EXITING;
}
if(dep->prev) {
@@ -593,6 +588,7 @@ erts_set_dist_entry_not_connected(DistEntry *dep)
if(dep->next)
dep->next->prev = dep->prev;
+ dep->state = ERTS_DE_STATE_EXITING;
dep->flags = 0;
dep->prev = NULL;
dep->cid = NIL;