aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2017-09-08 17:11:20 +0200
committerSverker Eriksson <[email protected]>2017-11-15 20:10:33 +0100
commit9271fd39c48a121b6be79e7a44a524c883fafc41 (patch)
treef141be4ce38f1a198a4e076262ae8469ca61014b /erts
parent389e11b8b8a476ca73ca03a39ad7ec298dc99e83 (diff)
downloadotp-9271fd39c48a121b6be79e7a44a524c883fafc41.tar.gz
otp-9271fd39c48a121b6be79e7a44a524c883fafc41.tar.bz2
otp-9271fd39c48a121b6be79e7a44a524c883fafc41.zip
erts: Let send(_,_,[noconnect]) enqueue msg on pending connection.
The least bad behavior I think: * We cannot return 'noconnect' as caller might already have enqueued monitor/link that never triggers. * We cannot block waiting for connection as that can ruin latency when 'noconnect' is used to avoid blocking auto-connect (see gen_server and gen_statem). But there might be users getting more cases of bad latency waiting for a pendig connection, instead of a fast 'noconnect'.
Diffstat (limited to 'erts')
-rw-r--r--erts/emulator/beam/bif.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c
index 8eb4d9e85b..30278cbe36 100644
--- a/erts/emulator/beam/bif.c
+++ b/erts/emulator/beam/bif.c
@@ -2192,11 +2192,10 @@ do_send(Process *p, Eterm to, Eterm msg, Eterm *refp, ErtsSendContext *ctx)
if (is_not_atom(tp[1]) || is_not_atom(tp[2]))
return SEND_BADARG;
- /* sysname_to_connected_dist_entry will return NULL if there
- is no dist_entry or the dist_entry has no port,
+ /* erts_find_dist_entry will return NULL if there is no dist_entry
but remote_send() will handle that. */
- dep = erts_sysname_to_connected_dist_entry(tp[2]);
+ dep = erts_find_dist_entry(tp[2]);
if (dep == erts_this_dist_entry) {
Eterm id;